Light electric vehicle that supports the weight of a user

ABSTRACT

A method for a light electric vehicle that supports a weight of a user that includes the steps of supplying a support surface to support the weight of a user; supplying a motor controller containing a processor to control operation of an electric motor mounted i) on the support surface, or ii) proximal to the support surface, where the motor controller and its processor are electrically connected to the rechargeable electric battery, where the electric motor is electrically connected to the motor controller and the rechargeable electric battery, as well as connected to a drive mechanism to drive one or more wheels; and supplying a mode selector to set a first riding-experience mode for the light electric vehicle, wherein the first riding-experience mode has a first acceleration maximum and a second riding experience mode has a second acceleration maximum.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit under 35 U.S.C. 120 as acontinuation of U.S. patent application Ser. No. 15/601,938, filed May22, 2017, titled “DYNAMIC CONTROL FOR LIGHT ELECTRIC VEHICLES,” whichclaims the benefit under 35 U.S.C. 120 as a continuation of U.S. patentapplication Ser. No. 15/189,213, filed Jun. 22, 2016, which is acontinuation of U.S. patent application Ser. No. 14/994,506, filed Jan.13, 2016, which is a continuation of U.S. patent application Ser. No.14/212,606, filed Mar. 14, 2014, which claims the benefit of USProvisional Application No. 61/785,543 filed Mar. 14, 2013, both ofwhich are incorporated in their entirety by this reference.

TECHNICAL FIELD

This invention relates generally to the electric vehicle field, and morespecifically to a new and useful system and method for dynamic vehiclecontrol in the electric vehicle field.

BACKGROUND

Light electric vehicles can be desirable for their portability andflexibility of use. However, due to the nascency of the field, manyusers lack the experience to properly handle the full capabilities ofthe vehicle. Unfortunately, conventional vehicles do not offer optionsthat limit the vehicle performance based on the driving expertise of theuser.

Additionally, the electric motor propelling the vehicle enables a widerange of vehicle performance capabilities. Completely different vehicleresponse profiles can be achieved through different motor controlschemes, wherein the motor can be controlled to respond to the sameinput signal in a completely different manner. While it can be desirablefor a user to control which vehicle response profile is applied to eachdriving session, conventional vehicles do not offer the option ofselecting significantly different vehicle response profiles to the user.

Thus, there is a need in the electric vehicle field to create a new anduseful motor control scheme that adjusts the vehicle response profilebased on user data.

BRIEF DESCRIPTION OF THE FIGURES

FIG. 1 is a schematic representation of the method.

FIG. 2 is a schematic representation of the system.

FIG. 3 is a schematic representation of normal vehicle operation.

FIG. 4 is a schematic representation of a first example of the methodincluding mobile device orientation calibration.

FIG. 5 is a schematic representation of a second example of the methodincluding future perturbation detection.

FIG. 6 is a schematic representation of a third example of the methodincluding substantially instantaneous perturbation detection due to asudden throttle value change.

FIG. 7 is a schematic representation of a fourth example of the methodincluding perturbation detection in response to sudden vehicle halting.

FIG. 8 is a schematic representation of map selection based on userexperience and context.

FIG. 9 is a schematic representation of map adjustment to accommodatefor an increased power requirement.

FIG. 10 is a schematic representation of map adjustment to accommodatefor drive command loss.

FIG. 11 is a schematic representation of map adjustment in response toexternal force application.

FIG. 12 is a schematic representation of the method of vehicle responsecontrol.

FIG. 13 is a schematic representation of a variation of controlling theoperation parameters of the motor based on the determined vehicleparameter settings.

FIG. 14 is a schematic representation of a second variation ofcontrolling the operation parameters of the motor based on thedetermined vehicle parameter settings.

FIG. 15 is a schematic representation of a variation of the methodincluding determining the modes available to a user.

DESCRIPTION OF THE PREFERRED EMBODIMENTS

The following description of the preferred embodiments of the inventionis not intended to limit the invention to these preferred embodiments.but rather to enable any person skilled in the art to make and use thisinvention.

As shown in FIG. 1, the method for dynamic vehicle control can includedetecting a condition indicative of perturbation S100, selecting areplacement map value S200, and controlling vehicle operation based onthe replacement output value S300. The method functions to accommodatefor vehicle perturbation during vehicle operation. In particular, thismethod functions to accommodate for perturbation during light vehicleoperation. Vehicle perturbation can be particularly apparent in lightvehicles, and can substantially affect the ride of the user because theuser carries a substantial amount of the overall system momentum. Forexample, a user can be pitched off the vehicle when the vehicleperturbations. These effects are magnified when the vehicle has a highpower to weight ratio, because the vehicle can propel the system atrelatively high speeds. These effects are further magnified if thevehicle is powered by an electric motor, since electric motors cannear-instantaneously change the power and/or torque applied to thedriven wheels, enabling the vehicle to change acceleration quickly.

1. System

As shown in FIG. 2, the method is preferably utilized with, and morepreferably performed by. a vehicle 100. The method can additionally oralternatively be used with and/or performed by a mobile device 200, aremote server 300, or any other suitable component.

The vehicle 100 of the system functions to support and propel a user 20.The vehicle 100 preferably has a high power to weight ratio, but canalternatively have a high torque to weight ratio, or any other suitableindicator of a high-powered, lightweight vehicle 100. The vehicle 100preferably has a power to weight ratio of over 200 W/kg, more preferablya power to weight ratio over 290 W/kg, such as a power to weight ratioof 360 W/kg, 400 W/kg, or above, but can alternatively have a power toweight ratio of over 100 W/kg, under 100 W/kg, or have any othersuitable power to weight ratio. The vehicle 100 is preferably a lightvehicle 100, wherein the vehicle weight is preferably a fraction of theweight of the rider(s) (e.g., the total weight of the riders or theweight of a single rider), but can alternatively be more than or equalto the weight of the rider. The total unloaded vehicle weight ispreferably less than 7 kg, but can alternatively be less than 100 kg,more than 100 kg, less than 80 kg, 70 kg, 60 kg, 50 kg, 30 kg, 20 kg, or10 kg, or have any other suitable weight. The vehicle 100 preferably hasa relatively high power rating. The vehicle power is preferably apparentpower, but can alternatively be actual or reactive power. The vehicle100 motor preferably has a motor power of 2000 W or higher, such as amotor power of 3000 W or 10,000 W, but can alternatively have a motorpower of 1000 W or higher, 1000 W or lower, or have any other suitablemotor power.

The vehicle 100 is preferably controlled based on a throttle map. butcan alternatively be controlled based on a torque map (correlating speedor throttle position 122 to the torque output), a power map, a speedmap, an acceleration map, or any other suitable map 400. The map 400preferably correlates input values 410 with output values 420. The inputvalue 410 and/or the output value 420 can be a function of one or morevariables (e.g., vehicle operation parameters, ambient environmentparameters, etc.), wherein the variables can be functions themselves,derivatives, or any other suitable variable. The map can bemultidimensional, with multiple input values and/or multiple outputvalues. For example, the throttle map preferably correlates a throttlevalue with an output value, wherein the throttle value and output valueare both map values. The throttle value is preferably received from thethrottle. The output value is preferably a motor parameter value, suchas a power output value, a current output value, a voltage output value,or a torque output value. Alternatively, the output value can be avehicle parameter value, such as a vehicle speed, a vehicleacceleration, an angular wheel speed, or angular wheel acceleration.However, the output value can be any other suitable measure of vehicle100, motor, or energy storage unit output. The throttle map ispreferably a default throttle map, wherein the default throttle map isadjusted (permanently or temporarily), or forms the basis for the mapvalue adjustment to accommodate for vehicle perturbation. The defaultthrottle map is preferably selected or generated for a user 20 based onone or more user parameters. Alternatively, the default throttle map canbe a predetermined, standard map. The throttle map is preferably storedby the vehicle 100, but can alternatively be stored by the mobile device200 or any other suitable system component. The throttle map preferablylinearly correlates the throttle values with the output values (e.g.,linearly increasing), but the relationship between the throttle andoutput values can alternatively be curved (e.g., logarithmicallyincreasing, hysteretic, logarithmically decreasing, etc.). The vehicle100 is preferably current controlled (e.g., has a current controlleduser response, be controlled based on current estimation, be controlledbased on current saturation, etc.), but can alternatively be voltagecontrolled or otherwise controlled.

Map value change (e.g., output value change) or traversal along thethrottle map or curve is preferably limited by a map value change ratelimit 402 (e.g., output value change rate limit), wherein the rate ofoperational or apparent map value change is preferably controlled to notexceed the map value change rate limit 402. For example, the torqueoutput can be limited to 5 Nm/s, wherein the torque output cannot changefaster than 5 Nm. Alternatively, the rate at which the target map valueis changed can be controlled to fall below the map value change ratelimit 402. For example, the torque value mapped to a first throttlevalue is prevented from changing faster than 5 Nm/s. The map valuechange rate can additionally include a minimum output change rate limit.The map value change rate limit(s) 402 are preferably selected based onuser parameters, but can alternatively be a default standard limit,selected based on substantially instantaneous vehicle parameters,selected based on historical vehicle operation parameters, bepredetermined, or be selected, calculated, or otherwise determined inany other suitable manner. For example. an output change rate limit canincrease with increased experience or user weight, and decrease withlower experience or user weight. In another example, the output changerate limit can increase with higher velocity or acceleration, anddecrease with lower velocity or acceleration.

In one variation of the vehicle 100 in which the vehicle 100 is currentcontrolled, the throttle map associates throttle values with targettransconductance values, wherein the vehicle 100 is controlled tomaintain the transconductance (e.g., ratio of input voltage to outputcurrent) by increasing or decreasing the voltage supplied. In anothervariation of the vehicle 100 wherein the vehicle 100 is voltagecontrolled, the throttle map associates throttle values with ratios ofinput voltage to output voltage, wherein the vehicle 100 is controlledto maintain the ratio by increasing or decreasing the current supplied.However, the vehicle 100 can be otherwise controlled. The processorpreferably controls vehicle operation, but the vehicle 100 canalternatively be controlled by the mobile device 200 or any othersuitable system component.

The vehicle 100 preferably includes a support surface, an energy storageunit (e.g., battery), a processor, a drive mechanism, one or morewheels, a throttle, and a drive controller 110. The vehicle 100 canadditionally include a handle or steering column. The vehicle 100 canadditionally include one or more receivers, transmitters (paired orunpaired with a receiver), sensors, or any other suitable component.Examples of the vehicle 100 include an electric skateboard, an electricscooter, an electric wheelchair, and an electric bicycle. The vehicle100 can be the vehicle disclosed in U.S. patent application Ser. No.13/645,388. filed Oct. 4, 2012, incorporated herein in its entirety bythis reference. However. the vehicle 100 can have any other suitableform factor or be any other suitable vehicle.

The support surface functions to support the user 20. The supportsurface is preferably a standing surface, and preferably includes abroad support face distal from the wheel axis of rotation.Alternatively, the support surface can be a seat, deck (e.g., skateboarddeck), pegs, or any other suitable surface capable of supporting theuser 20 on the vehicle 100.

The energy storage unit functions to store power and provide power tothe drive mechanism. The energy storage unit is preferably a battery,more preferably a rechargeable battery (e.g., a secondary battery) butcan alternatively be a non-rechargeable battery, a fuel cell with fuelstorage (e.g., metal hydride, hydrogen gas, methane storage, etc.), athermal storage mechanism, a flywheel, or any other suitable energystorage mechanism. The battery preferably includes a plurality ofbattery cells, wherein the battery cells are preferably connected inparallel, but can alternatively be connected in series of a combinationthereof. The battery cells are preferably lithium chemistry (e.g.,lithium ion, lithium polymer, etc.), but can alternatively be nickelcadmium or any other suitable chemistry. The energy storage unit canadditionally include battery balancing circuits or any other suitablebattery management circuitry.

The processor functions to control vehicle operation. The processorpreferably controls vehicle operation by controlling power provision tothe electric motor, but can otherwise control vehicle operation. In onevariation of the vehicle 100, the processor controls the currentprovided to the electric motor to maintain an output voltage. In anothervariation of the vehicle 100. the processor controls the voltageprovided to the electric motor to maintain an output current. Theprocessor preferably controls vehicle operation based on a throttle mapfor the vehicle 100, a throttle value received from the throttle, and adrive command 111 received from the drive controller 110. However, theprocessor can alternatively control vehicle operation based on any othersuitable control instruction and input. The processor can additionallyrecord and process sensor measurements, wherein vehicle control canadditionally be based on sensor measurements. The processor canadditionally receive and process data received by the receiver from themobile device 200, wherein vehicle control can additionally be based ondata received from the mobile device 200. The processor can additionallyor alternatively perform any other suitable vehicle operationfunctionality. The vehicle 100 can include one or more processors.

The drive mechanism functions to propel the vehicle 100 and any loadsupported by the vehicle 100. The drive mechanism is preferably a motor,more preferably an electric motor, but alternatively any other suitablemotor. The vehicle 100 preferably includes at least one motor, morepreferably at least two motors, but can alternatively include anysuitable number of motors. In one variation of the vehicle 100, thevehicle 100 includes one motor for each wheel. In another variation ofthe vehicle 100, the vehicle 100 includes one motor for each pair ofwheels. The motor is preferably connected to a wheel by a drivetrain,but can alternatively be otherwise connected. The motor is preferably anA/C motor, such as an induction motor, a cage and wound rotor inductionmotor, or any other suitable A/C motor, but can alternatively be anA/C-D/C motor, a D/C motor, or any other suitable motor. The vehicle 100can additionally include a motor controller that functions to controlthe motor. The vehicle 100 can include one motor controller for eachmotor, or can include a motor controller that controls multiple motors.The vehicle 100 can additionally include a wheel or motor encoder thatfunctions to measure one or more angular position parameters of themotor or driven wheel. For example. the encoder can measure the angularposition, angular velocity, and/or angular acceleration of the motor orwheel. Each driven wheel preferably includes an encoder. Alternatively,each motor can include an encoder. Alternatively, every wheel, driven orpassive, can include an encoder. However, the encoders can be otherwisedistributed across the system.

The wheels of the vehicle 100 function to translate relative to thedrive surface to translate the vehicle 100 and the load (e.g., user 20)along the drive surface. The vehicle 100 preferably includes fourwheels, but can alternatively include two wheels or any suitable numberof wheels. The wheels are preferably substantially identical (e.g., withthe same diameter). but can alternatively be different. The wheels arepreferably coaxially paired, but can alternatively be arranged with theaxes of rotation in parallel. The four wheels are preferably arranged atthe corners of a rectilinear matrix, but can alternatively be arrangedin a trapezoidal configuration or any other suitable configuration. Atleast one wheel of the vehicle 100 is driven. The four wheels arepreferably all driven (e.g., all drivably connected to a motor, morepreferably each connected to an independent motor), but a subset of thewheels can alternatively be driven and/or passive. In one example, therear wheels (e.g., a pair of wheels that are coaxially arranged anddistal the steering column) are driven (e.g., drivably connected to themotor). In another example. one wheel of each pair of coaxially arrangedwheels is driven. However, the vehicle 100 can have any other suitableconfiguration of driven and passive wheels.

The throttle 120 (user input, user motor input, user power control, userinput mechanism) of the vehicle 100 functions as an input to determinethe vehicle output. The throttle is preferably controlled by the user20, but can alternatively be controlled by the mobile device 200 of theuser 20 or be otherwise controlled. The throttle preferably communicatesa throttle value (user input value, motor input value, power inputvalue) to the vehicle 100, more preferably to the processor butalternatively to the motor controller. The throttle value is preferablyused to determine an output value based on a throttle map (user inputmap, motor input map, power input map, etc.), wherein the vehicle 100 issubsequently controlled to meet the output value. The throttlepreferably has a default throttle position 121, which preferably maps toa default throttle value. For example, the default throttle value can bezero. However, the default throttle value can be any other suitablevalue. The throttle preferably automatically returns to the defaultthrottle position 121 when the throttle is released. The throttle valueis preferably dependent upon the amount of throttle position deviationaway from the default throttle position 121. The throttle can be amechanical throttle or a digital throttle. In one variation of amechanical throttle, movement of the throttle away from the defaultthrottle position 121 adjusts the position of a variable resistor (e.g.,potentiometer), wherein the throttle value is determined from theresultant resistivity. In one variation of a digital throttle. thethrottle position or the amount of throttle deviation away from thedefault position is translated into a throttle value, which is thendigitally communicated to the vehicle 100 (e.g., via a wire or through awireless transmitter, such as a radio). The throttle position can bedetermined based on contact of one of a series of electrical contacts.the amount and/or location of a disturbance in a magnetic field, thereturn force of a spring, or determined in any other suitable manner.The throttle can be mounted to the vehicle 100 or be separate (e.g.,removable) from the vehicle 100. The throttle is preferably a rotationalmember. wherein the throttle value is dependent upon an angulardisplacement relative to the default throttle position 121 (e.g., awheel on a control mechanism, a roller on a handlebar, a pedal, etc.),but can alternatively be a trigger, wherein the throttle value isdependent upon a linear displacement relative to the default throttleposition 121, or have any other suitable form factor.

The drive controller 110 of the vehicle 100 functions to send a drivecommand 111 to the vehicle 100, wherein the vehicle 100 drives inresponse to receipt of a combination of the drive command 111 and athrottle value selection 123. The drive controller 110 is preferablyoperable between a first and a second mode, wherein the drive controller110 sends a drive command 111 in the first mode and does not send adrive command 111 in the second mode. In one variation of the vehicle100. the drive controller 110 is operable between a closed circuit inthe first mode, and an open circuit in the second mode. Alternatively,the drive controller 110 can be operable between a plurality ofdifferent modes, wherein the drive controller 110 can send multiplesignals. The drive controller 110 can be mechanical, wherein the drivecommand 111 can be a physical connection between the drive mechanism andthe wheel. An example of a mechanical drive controller 110 is a clutch.The drive controller 110 can be digital, wherein a digital command issent to the vehicle 100 (e.g., through a wired connection or a wirelessconnection). The vehicle 100 is preferably operated (e.g., powersupplied to the motor) as long as a drive command 111 is received.However, the vehicle 100 can be operated without continuous receipt ofthe drive command 111. For example, the vehicle 100 be placed in thedrive mode in response to receipt of the drive command 111 and operatedin the drive mode until a standby command is received, wherein thevehicle 100 is placed in the standby mode. However, the vehicle 100 canbe otherwise operated. The drive controller 110 is preferably a trigger,but can alternatively be a button, a roller, or have any other suitableform factor.

The handle or steering column functions to control the direction ofvehicle translation. The handle or steering column can additionallyfunction to support the user 20. The handle or steering columnpreferably controls planar rotation of a wheel. more preferably a pairof coaxially aligned wheels. The handle or steering column is preferablymounted to the vehicle 100, but can alternatively be removable.

The receiver of the vehicle 100 functions to receive signals for vehicleoperation. The vehicle 100 preferably includes one or more receivers. Areceiver preferably connects with and receives signals from the triggerand/or drive controller 110. A receiver (preferably a differentreceiver, alternatively the same receiver) can connect with and receivedata from the mobile device 200 of the user 20, a remote server 300, orany other suitable data source. The transmitter of the vehicle 100functions to transmit signals representative of vehicle operation. Thevehicle 100 preferably includes one or more transmitters. Thetransmitter can connect with and communicate data to the mobile device200 of the user 20, a remote server 300, or any other suitablecomponent. The transmitter is preferably paired with the receiver, butcan alternatively be a different transmitter. The transmitter and/orreceiver preferably enable wireless communication, but can alternativelybe wired. The communication technology of the transmitter and/orreceiver is preferably a short-range communication technology, such asBluetooth (e.g., Bluetooth 2.0), NFC, infrared, inductance, or low-powerradio, but can alternatively be a long-range communication technology,such as WiFi, cellular, radio, sonic, cellular, or any other suitablecommunication technology. The vehicle 100 can include any suitablenumber of any suitable combination of the technologies.

The sensor of the vehicle 100 functions to measure a vehicle parameter.The vehicle parameter is preferably a vehicle position parameter (e.g.,lateral or angular vehicle parameters), such as the vehicle position(e.g., location, altitude), vehicle acceleration, vehicle velocity,wheel position, angular wheel velocity, angular wheel acceleration, orwheel perturbation, but can alternatively be a vehicle 100 orientationparameter, such as the pitch, yaw, roll, heave, sway, or surge of thevehicle 100, or be any other suitable vehicle parameter. The vehicleparameters are preferably measured as vectors, but can alternatively bemeasured as scalars. The sensor can be an encoder, an accelerometer, agyroscope, a weight sensor, a current sensor, a voltage sensor, aresistivity sensor, an altimeter, a GPS or other location unit, or anyother suitable sensor. The sensor is preferably powered by the energystorage unit, but can be otherwise powered. The sensor preferably sendsthe measurements to the processor, but can alternatively send themeasurements to the mobile device 200, the remote server 300, or anyother suitable component of the system. The vehicle 100 can include anysuitable number of any suitable combination of sensors.

The mobile device 200 of the system functions to represent the user 20.The mobile device 200 can function to uniquely identify the user 20,such as by transmitting a unique user 20 identifier stored by the mobiledevice 200 to the vehicle 100 or to a remote server 300, or otherwiseuniquely identifying the user 20. The mobile device 200 can function tomeasure and communicate user parameters and/or vehicle parameters (e.g.,apparent vehicle parameters) to the vehicle 100 or the remote server300. The mobile device 200 can function to retrieve information from theremote server 300, process the information, and send the processedinformation and/or resultant instructions to the vehicle 100. The mobiledevice 200 is preferably retained at the same position relative to theuser 20, more preferably the user torso, while the user 20 is riding thevehicle 100 (e.g., after user 20 mounts the vehicle 100 until user 20gets off the vehicle 100 or stops the vehicle 100), but canalternatively vary in position relative to the user 20. For example, themobile device 200 can be retained in a user 20 pocket or backpack duringvehicle operation. Alternatively, the mobile device 200 can be retainedby the vehicle 100 (e.g., transiently mounted to the vehicle 100).

The mobile device 200 is preferably a portable computing device, such asa smartphone, tablet, smartwatch, wearables (e.g., clip, pin, pendant,etc. including at least a processor), or any other suitable mobiledevice 200. The mobile device 200 preferably includes a communicationsystem including a transmitter and/or receiver. The communication systemcan include one or more short-range communications, such as Bluetooth,NFC. inductive, or infrared, and/or long-range communications, such ascellular or radio. The mobile device 200 preferably includes one or moresensors. The sensors can include a location sensor, such as a GPSsystem, triangulation system, or any other suitable location unit. Thesensors can include orientation sensors, such as an accelerometer,gyroscope, altimeter. or any other suitable orientation sensor. Thesensors can include ambient environment sensors. such as light sensors,acoustic sensors (e.g., microphones), or any other suitable ambientenvironment sensors. However, the mobile device 200 can include anyother suitable sensor.

The system 10 can additionally include one or more remote server systems(processing systems). The remote server 300 can function to store userparameters, such as user characteristics, riding history. andpreferences. The remote server 300 can additionally or alternativelyfunction to retrieve information from third party sites, such as socialnetworking systems, and can also process the information to extract userparameters. The remote server 300 is preferably remote from the vehicle100, more preferably remote from the mobile device 200, and cancommunicate with the vehicle 100 and/or device through a wired orwireless communication. The remote server 300 can be part of a socialnetworking system, a monitoring system, a database, or any othersuitable remote server system.

A user parameter is preferably used by the system to determine thereplacement output value. The user parameter can additionally oralternatively be used by the system to determine the default map, theoutput value change rate limit, or any other suitable parameterindicative of user 20 riding experience. The user parameter canadditionally or alternatively be used to generate control instructions.The user parameter is preferably determined by the mobile device 200,but can alternatively be determined by the vehicle 100, the remoteserver 300, or any other suitable component. The user parameter ispreferably sent to and received by the vehicle 100. The user parametercan be sent through the mobile device 200 when determined by the remoteserver 300. The user parameter can be determined from sensormeasurements, historical vehicle use by the user 20, social networkingsystem content, schedules, or any other suitable data source. The userparameter can be determined (e.g., retrieved, calculated, selected,etc.) and/or sent at a predetermined frequency, in response to a requestreceived from the vehicle 100 or mobile device 200, in response todetection of a sending event (e.g., in response to detection of aperturbation event) by the mobile device 200, or determined and/or sentat any suitable frequency. For example, the user parameter can berequested by the vehicle 100 when a rapid change in a vehicle positionparameter (velocity or acceleration) is detected. In another example,the user parameter can be requested when the velocity, acceleration, orperturbation meets or exceeds a predetermined value (e.g., when thevehicle velocity is zero). Parameters other than user parameters can besent in response to the request, such as throttle maps.

The user parameter is preferably descriptive of the user 20. The userparameters can include user preferences, riding experience, physicalcharacteristics, whether the mobile device 200 has been substantiallystatically coupled to the user 20 or vehicle 100 (e.g., within athreshold range of motion), user emotion, user fatigue or energy level,or any other suitable parameter descriptive of the user 20. Examples ofuser preferences include the output value upper and lower limits, theoutput change rate limit (e.g., upper and/or lower), the slope or curveof the correlation, automatic driving settings, and preferred operationmodes. However, the user parameters can include any other suitable userpreferences. The riding experience is preferably represented by anumber, but can alternatively be otherwise represented. The ridingexperience can be or be calculated from the throttle history for theuser 20 (e.g., throttle position or throttle value), the locationhistory, the ride duration of each ride, the historic vehicle 100performance, social network validation, or any other suitable factorindicative of riding experience. Examples of physical characteristicscan include height, weight, energy level, BMI, clothing, or any othersuitable physical user characteristic. The user parameters canalternatively or additionally be descriptive of the system. The userparameters can include the user angular orientation on the vehicle 100,user longitudinal or lateral position on the vehicle 100, whether theuser 20 is on or off the vehicle 100, user weight distribution acrossthe support surface, the user velocity, the user acceleration, thesystem location, the system velocity, system acceleration, systemangular position (e.g., pitch, such as incline or decline, yaw, roll),ambient environment parameters (e.g., the terrain, light, noise), thestarting location of the system, the user 20 destination, or any othersuitable system parameter. However, user parameters can include anyother suitable measurement or information indicative of riding context,or any other suitable user parameter.

In typical vehicle operation, an example of which is shown in FIG. 3,the vehicle 100 determines the input value S10, determines the outputvalue 124 (system control value) for the input value 123 based on themap S20, and controls vehicle operation to meet the output value S30.Determining the input value preferably includes determining the throttlevalue, but can alternatively include determining any other suitableinput. Determining the throttle value can include receiving the throttlevalue from a throttle or throttle controller, or can include determininga throttle value based on the throttle position. Determining the outputvalue for the input value based on the map preferably includesdetermining an output value for the throttle value based on a throttlemap, but can alternatively include determining an output value for anyother suitable input value based on any other suitable map. The map ispreferably a default map used for typical driving conditions (e.g.,non-perturbation conditions), but can alternatively be a map used underany other suitable driving condition. The map is preferably selectedbased on user parameters, such as vehicle velocity, user experience, ordriving history, but can alternatively be a predetermined default map.Controlling vehicle operation to meet the output value preferablyincludes adjusting the energy storage unit output parameters (e.g.,current output, voltage output, power output, etc.), motor inputparameters (e.g., current input, voltage input. power input, etc.),and/or motor output parameters (e.g., torque output, motor speed. etc.)to meet the output value. The vehicle operation is preferably controlledto maintain the actual output value within a predetermined range of thetarget output value, as determined from the map, but can alternativelybe controlled to meet the target output value (e.g., exactly meet theoutput value), or be otherwise controlled based on the output valuedetermined from the map. In one variation of the method of typicalvehicle operation, the method includes receiving a drive command 111from the drive controller 110, receiving a trigger value beyond apredetermined range of the default throttle value, determining an outputvalue corresponding to the throttle value based on the throttle map, andcontrolling the vehicle output to substantially meet the target outputvalue, within a predetermined error threshold. However, the vehicle 100can be otherwise controlled.

2. Method of Dynamic Vehicle Control

As shown in FIG. 1, the method for dynamic vehicle control or dynamicperturbation mitigation, includes detecting a condition indicative ofperturbation S100, selecting a replacement map value S200, andcontrolling vehicle operation based on the replacement output valueS300.

Detecting a condition indicative of perturbation S100 functions todetect that a perturbation has happened, or that perturbation is aboutto occur. Perturbation preferably includes jerk. more preferably jerkabove a jerk threshold, but can additionally or alternatively includeany other suitable measure of sudden change (e.g., change beyond apredetermined threshold) in position, velocity, or acceleration of thevehicle or user. The perturbation can be externally applied (e.g., dueto the vehicle hitting an obstacle and suddenly stopping, etc.). appliedby the vehicle (e.g., due to sudden deceleration or acceleration, etc.),applied by the user (e.g., due to sudden changes in user control, usermounting or dismounting the vehicle, etc.), or generated an applied inany other suitable manner. Jerk is preferably a rate of change ofacceleration (e.g., derivative of acceleration), but can alternativelybe any other suitable perturbation. The condition indicative ofperturbation preferably determines or detects instant or futureperturbation above a perturbation threshold. The perturbation thresholdis preferably a threshold acceleration change rate (jerk threshold), butcan alternatively be a threshold of any other suitable perturbationmeasure. The perturbation threshold is preferably determined based onthe user parameters, but can alternatively be predetermined (e.g., set).In one variation, the perturbation threshold (jerk threshold) ispreferably 1 m/s³, but can alternatively be higher or lower. Detecting acondition indicative of perturbation can include detecting a conditionindicative of future perturbation and/or detecting a conditionindicative of instantaneous perturbation. In response to detection ofthe condition indicative of perturbation, the vehicle preferably takesaction to mitigate the perturbation and/or the effects of theperturbation (e.g., prevent the user from falling off the vehicle).Perturbation detection can additionally or alternatively be used tomitigate perturbation due to the vehicle attempting to immediately meeta high output value mapped to a high input value. The perturbationmeasurement is preferably an absolute value (e.g., scalar) but canalternatively be a vector.

Detecting a condition indicative of future perturbation S110 can includedetecting a vehicle velocity equivalent to or below a threshold velocityand detecting a throttle value above a threshold throttle value,determining a throttle value beyond a threshold deviation from theprevious throttle value, or determining that the output value mapped tothe instantaneous throttle value is above a threshold value. Forexample, a condition indicative of future perturbation can be detectedwhen the vehicle velocity is zero, the previous throttle value was zero(e.g., default), and the instantaneous throttle value is the maximumthrottle value.

Detecting a condition indicative of future perturbation can additionallyor alternatively include determining an instantaneous vehicleacceleration. determining the anticipated vehicle acceleration based onthe instantaneous output value (e.g., as determined from the map basedon the throttle value), and comparing the instantaneous vehicleacceleration with the anticipated vehicle acceleration. A conditionindicative of perturbation can be detected when the difference betweenthe instantaneous vehicle acceleration with the anticipated vehicleacceleration exceeds a predetermined acceleration difference threshold.

Detecting a condition indicative of instantaneous perturbation S120 caninclude detecting perturbation at the vehicle or at the mobile device.The perturbation is more preferably determined by the vehicle or by themobile device, but can alternatively be determined by any other suitablecomponent. For example, a perturbation can be detected when the vehiclehits an obstacle, starts driving. or slows down.

Detecting a condition indicative of perturbation at the vehicle caninclude detecting a change in vehicle acceleration (e.g., speeding up orslowing down) beyond a threshold perturbation (e.g., faster than 1m/s³). The perturbation can additionally or alternatively be detected atthe vehicle as a change in wheel angular acceleration beyond a thresholdperturbation, a shift in a center of gravity of the user or the systembeyond a threshold perturbation, change in input value (e.g., throttlevalue) beyond an input value change rate limit (e.g., throttle valuechange rate limit), change in output value beyond an output change ratelimit, or detected in any other suitable manner.

Detecting a condition indicative of perturbation at the mobile devicecan include detecting a sudden change in acceleration beyond a thresholdperturbation, wherein the mobile device continuously or at apredetermined frequency measures the mobile device acceleration. Themobile device acceleration is preferably indicative of useracceleration, and is preferably additionally indicative of systemacceleration during steady state (e.g., non-perturbed) operation.Detection of mobile device acceleration beyond the thresholdperturbation can be indicative of user perturbation (e.g., a userfalling off the vehicle) or of system perturbation. The mobile devicecan send the perturbation measurement to the vehicle. The mobile devicecan additionally or alternatively generate a perturbation notification,which is sent to and subsequently received by the vehicle S121. Theperturbation notification can include the perturbation measurement,mitigation instructions (e.g., vehicle operation instructions), or anyother suitable information.

Detecting a condition indicative of perturbation at the mobile devicecan additionally or alternatively include measuring the substantiallyinstantaneous mobile device acceleration, sending the measured mobiledevice acceleration to the vehicle, and, at the vehicle, comparing themobile device acceleration with the instantaneous vehicle accelerationor the estimated vehicle acceleration based on the wheel angularacceleration. A perturbation condition is detected when the differencebetween the mobile device acceleration and the vehicle acceleration(measured or estimated) exceeds a threshold difference. However, theperturbation condition can be otherwise detected.

In one example, detecting a condition indicative of perturbation caninclude determining that a vehicle position parameter is below or equalto a threshold value (e.g., wherein the threshold value is 0 m/s²),receiving a first throttle value from the throttle, wherein the firstthrottle value is beyond a predetermined range relative to the defaultthrottle value (e.g., near the maximum throttle value), and receiving adrive command after receipt of the throttle value, as shown in FIG. 5.

In another example, detecting a condition indicative of perturbation caninclude determining that a vehicle position parameter is below or equalto a threshold value (e.g., wherein the threshold value is 0 m/s²),receiving a drive command, and receiving the first throttle value afterreceipt of the drive command, wherein the first throttle value is beyonda predetermined range relative to the prior throttle value, as shown inFIG. 6.

In another example, detecting a condition indicative of perturbation caninclude determining a vehicle acceleration above a thresholdacceleration and detecting a loss of a drive command or detecting a dropin the throttle value beyond a threshold change. In this example,perturbation can be detected when a connection between the drivecontroller and/or throttle is lost. Detecting a condition indicative ofperturbation can additionally include detecting a vehicle pitchexceeding a first angular range defined relative to a gravity vector(e.g., indicative that the vehicle is driving up an incline) from mobiledevice or vehicle orientation sensors, wherein the replacement outputvalue can be subsequently set to the output value prior to connectionloss (e.g., to prevent sudden slowing while driving up the incline). Thereplacement output value can be gradually decreased to the defaultoutput value (e.g., mapped to the default input value) such that vehicletraversal is halted. Detecting a condition indicative of perturbationcan additionally include detecting a vehicle pitch exceeding a secondangular range defined relative to a gravity vector (e.g., indicativethat the vehicle is driving down a decline) from mobile device orvehicle orientation sensors. wherein the replacement output value can besubsequently set to the output value prior to connection loss (e.g., toprevent sudden slowing while driving up the incline). The replacementoutput value can be gradually decreased to the default output value(e.g., mapped to the default input value) such that vehicle traversal ishalted. However, vehicle or user perturbation can be otherwise detectedby the mobile device, vehicle, or any other suitable component of thesystem.

Selecting a replacement map value S200 functions to determine a systemcontrol value that results in a mitigating response to reduce theeffects of vehicle perturbation. The mitigating response preferablyreduces the effects of vehicle perturbation on the load, such as theuser (e.g., prevents the user from falling off the vehicle) but canalternatively reduce the effect of vehicle perturbation on the vehicleor on any other suitable system component. The replacement map value 401preferably functions as a target value, wherein the vehicle is graduallycontrolled to meet the replacement map value from the default map value.The replacement map value can alternatively function as an immediatereplacement for the input or output value. wherein the vehicle issubstantially instantaneously controlled to meet the replacement mapvalue, and is gradually controlled to regain the default map value. Thereplacement map value is preferably a set of values that temporarily orpermanently replace the corresponding map values on the default map(e.g., deform the default map), but can alternatively be a new map(e.g., mapping the same input and output variables or mapping differentinput or output variables). be an upper or lower limit on a map variable(e.g., an upper or lower output limit), a new curve profile (e.g., newslope), a selection of whether or not a map should be used, or be anyother suitable selection of a variable effecting vehicle performance orresponse.

The replacement map value is preferably determined (e.g., selected,calculated, etc.) in response to detection of the condition indicativeof perturbation, but can alternatively be predetermined and mapped to agiven perturbation measurement or perturbation condition. or otherwisedetermined. The replacement map value is preferably a replacement outputvalue (e.g., for a given input value), but can alternatively be areplacement input value (e.g., for a given output value). A singlereplacement map value can be selected. More preferably, a set ofreplacement map values, each corresponding to a complementary input oroutput value, is selected. For example, a replacement output value canbe selected for an instantaneous throttle value. In another example, aset of replacement output values can be selected for a range of throttlevalues centered about an instantaneous throttle value. A replacement mapvalue can be independently selected for each driven wheel.Alternatively, a replacement map value can be selected for all drivenwheels, selected for a pair of driven coaxial wheels, or selected forany other suitable combination of wheels.

The replacement map value can be determined based on a user parameter,determined based on an instantaneous vehicle parameter, determined basedon an historical vehicle parameter, determined based on historical mapvalues, determined based on default map values, and/or be determinedbased any other suitable variable. The replacement map value ispreferably calculated from an equation including the vehicle parameter,user parameter, and/or map values as variables. The equation canadditionally include the vehicle operation parameters or perturbationmeasurement as variables. Alternatively the replacement map values canbe determined from a chart, graph, any other suitable data structure, ordetermined in any other suitable manner. The replacement map value ispreferably determined by the vehicle, more preferably determined by thevehicle based on user parameters received from the mobile device orvehicle parameters measured by the vehicle. Alternatively. thereplacement map value can be determined by the mobile device and sent tothe vehicle, determined by the server and sent to the vehicle or themobile device, then to the vehicle, or determined by any other suitablesystem component.

Determining the replacement map value based on the user parameter caninclude determining the map value based on the user weight, a numericalrepresentation of user experience, user emotion (e.g., as determinedfrom posts generated by the user on a social networking system),biometric measurements, starting location, destination, userpreferences, user permissions, user weight distribution across thesupport surface, user throttle history, vehicle velocity history for theuser, or any other suitable user parameter . For example, thereplacement map value can be positively correlated with user weight(e.g., higher for a user with a heavier weight, and lower for a userwith a lower weight). In another example, the replacement map value canbe decreased in response to an excited user state (e.g., as determinedfrom the biometric measurement). In another example, the replacement mapvalue can be decreased in response to an angry user emotional state(e.g., as determined from keyword analysis of the social networkingsystem posts). In another example, a first replacement map value can beselected for a first experience level, a second replacement map valuecan be selected for a second experience level, wherein second value ishigher than the first value if the second experience level is higherthan the first experience level. In another example, a first replacementmap value can be selected for a first user weight, a second replacementmap value can be selected for a second user weight. wherein second valueis higher than the first value if the second weight is higher than thefirst weight. Alternatively, the replacement map values can beproportional to the user weight or otherwise calculated

Determining the replacement map value based on the user parameter caninclude determining the map value based on the instantaneous vehicleacceleration, vehicle velocity, wheel velocity, historical vehicleacceleration, or any other suitable vehicle parameter. For example, thedifference between the replacement map value and the default map valuecan be positively correlated with the vehicle velocity.

Determining the replacement map value based on the user parameter caninclude assigning the map value used just prior to detection ofperturbation condition as the replacement value. wherein the map valuescan be recorded (e.g., continuously or at predetermined frequencies) fora predetermined period of time during vehicle operation by the vehicleor the mobile device. For example, the output value just prior toperturbation detection (e.g., assigned to a first throttle value) can beassigned as the replacement output value for a second, instantaneouslydetermined throttle value. In a specific example, determining areplacement output value for a first throttle value (e.g., instantaneousthrottle value) includes assigning an output value that was targetedprior to the loss of the drive command as the replacement output value.

Determining the replacement map value based on the user parameter caninclude assigning the map value mapped to the default input value (e.g.,corresponding to the default input position) as the replacement mapvalue. For example, the output value mapped to the default throttlevalue (e.g., corresponding to the default throttle position) can beassigned as the replacement output value for the instantaneous throttlevalue.

In one example, imminent user mounting of the vehicle is detected as theperturbation condition (e.g., in response to the vehicle being turnedon, in response to the vehicle detecting the user mobile device within apredetermined range of the vehicle, etc.). The perturbation condition ispreferably detected prior to receipt of a drive command and/or athrottle value, such that the instantaneous throttle value being used isthe default throttle value. However, the perturbation condition can bedetected at any other suitable time. In response to determination of theperturbation condition, a replacement output value that increases dragon the vehicle is selected for the default throttle value. Morepreferably, a replacement output value is dynamically selected thatcounteracts any externally applied force on the vehicle, in response toreceipt of the externally applied force. However, any other suitablereplacement output value can be selected. The amount of drag (e.g., theamount the replacement output value deviates from the default outputvalue) preferably varies based on a user parameter. but canalternatively be based on any other suitable parameter. For example, theamount of drag can be inversely correlated with the amount of userexperience. In another example, a first amount of drag is selected foran excited user (e.g., as measured from social network system postanalysis or biometric data), and a second amount of drag is selected fora despondent or fatigued user (e.g., as measured from social networksystem post analysis or biometric data). However, the amount of drag canbe otherwise determined.

Controlling vehicle operation based on the replacement map value 8300functions to mitigate the effects of vehicle perturbation. Controllingvehicle operation can include adjusting the map values on the defaultmap to the replacement map values, can include setting the replacementmap values as target values, can include instantaneously changingvehicle operation to meet the replacement map values, or controllingvehicle operation in any other suitable manner based on the replacementmap value. In one example, power provision to the motor is controlled tomaintain a supply parameter (e.g., to the motor) or output parameter(e.g., output of the motor, performance parameter, etc.) withinpredetermined range or threshold of the target output value. Thepredetermined range can be determined as a percentage of the outputvalue, be a scalar value range, or be any other suitable range. Therange is preferably centered about the target output value, but canalternatively be skewed relative to the target output value.

Controlling vehicle operation can additionally or alternatively includeadjusting the map value mapped to the input value from a first map valueto a second map value. Alternatively, the input value to which thethrottle positions can be adjusted. Adjusting the map value preferablyincludes smoothly transitioning from the first map value to the secondmap value (e.g., transition smoothing), but can alternatively abruptlyor suddenly transition from the first to the second value. Aperturbation filter (e.g., jerk filter) is preferably applied to theadjustment or to the vehicle response in general, but the adjustment canalternatively be unfiltered or filtered by another filter. For example,the output value mapped to the throttle value can be adjusted from afirst output value to a second output value. The first map value can bethe replacement map value and the second map value can be the defaultmap value for the throttle value, wherein adjusting the map valueincludes regaining the default map value mapped to the throttle value.Alternatively, the first map value can be the default map value and thesecond map value can be the replacement map value, wherein the map valuecorresponding to the input value is gradually adjusted from the defaultmap value to meet the replacement map value. However, the map values canbe otherwise controlled. The adjustment is preferably a linearadjustment, but can alternatively be scaled or curved. The map valuesare preferably adjusted at predetermined increments, but the adjustmentincrements can alternatively be dynamically determined. vary as afunction of adjustment time, vary as a function of proximity to thesecond map value, or be determined in any other suitable manner. The mapvalues are preferably changed at or slower than the map value changerate limit, but can alternatively change faster than the map valuechange rate limit, dependent upon the type of perturbation detected.

In one variation, controlling vehicle operation includes controllingvehicle operation (e.g., vehicle output) to gradually match thereplacement map value. For example, the target vehicle output can beincrementally changed from the default map value for the throttle valueto the replacement map value at a map value change rate or over apredetermined period of time. In a specific example, the controllingvehicle operation includes incrementally adjusting the output valuemapped to the throttle value from the replacement output value to thedefault output value as determined on the default throttle map. Thevehicle operation is preferably controlled to maintain the actual outputvalue (e.g., measured output value) within a predetermined range (e.g.,margin of error) of the target adjusted output value, but canalternatively be controlled to match the target adjusted output value.

In another variation, controlling vehicle operation includes controllingvehicle operation to substantially instantaneously meet the replacementmap value. The vehicle operation is preferably subsequently controlledto gradually regain the default map value for the given throttle valueor output value. The map value change rate is preferably limited, andcan be predetermined or selected based on user parameters or vehicleparameters. The rate at which the actual output is changed preferablydoes not exceed the map value change rate, but can alternatively exceedthe map value change rate (e.g., when vehicle operation is substantiallyinstantaneously changed to meet the replacement output value). Forexample, controlling vehicle operation includes incrementally adjustingthe output value mapped to the throttle value from the replacementoutput value to the default output value, wherein the default outputvalue was determined from the default throttle map. The vehicleoperation is preferably controlled to maintain the actual output value(e.g., measured output value) within a predetermined range (e.g., marginof error) of the target adjusted output value, but can alternatively becontrolled to match the target adjusted output value.

The method can additionally include detecting instantaneous vehicleoperation parameters. The vehicle operation parameters can include thelateral speed or acceleration of the vehicle (e.g., speed oracceleration in a vector parallel to the longitudinal axis of thesupport surface), the wheel speed or acceleration (angular), thethrottle position, drive controller position, load parameters, or anyother suitable vehicle operation parameters. The vehicle operationparameters can be measured by vehicle sensors, mobile device sensors, orsensors of any other suitable system component. The vehicle operationparameters can be measured or calculated. For example, vehicle velocitycan be measured by an accelerometer on the vehicle or the mobile device,estimated from the wheel speed or acceleration, or determined in anyother suitable manner. The wheel speed or acceleration can be determinedfrom an encoder (e.g., arranged on a driven wheel or a non-drivenwheel).

The method can additionally include determining a user parameter. Theuser parameter can be determined at the mobile device. at the vehicle,at a remote server, or at any other suitable system component. The userparameter is preferably calculated, but can alternatively be measured.

In one variation. a user parameter is determined by the mobile device byretrieving the user parameter from mobile device memory. In anothervariation, the user parameter is determined by the mobile device fromsensor measurements. In another variation, a user parameter isdetermined by the remote server by retrieving the user parameter fromthe remote server. In another variation, the user parameter can bedetermined at the vehicle, user mobile device, or the remote server byretrieving content generated by the user or content generated byconnections of the user account from the social networking system andprocessing the content to extract a user parameter of interest, such askeywords, location, emotion, or other parameter indicative of usercontext.

The method can additionally include determining a user weight or mass.The user weight (or mass) can be determined from the remote server, bythe mobile device, or by the vehicle. In one variation of determiningthe user weight from the remote server, the mobile device or vehiclesends a request to the remote server in response to determination ofuser proximity with the vehicle including a user identifier. The weightassociated with the user identifier stored on the remote server isretrieved and sent to the mobile device or vehicle. However, the userweight can be otherwise determined from the remote server. In onevariation of determining the user weight with the mobile device, themobile device retrieves and sends a stored user weight to the vehicle inresponse to receipt of a request or detection of proximity to thevehicle. However, the user weight can be otherwise determined by themobile device. In one variation of determining the user weight with thevehicle, the load on the vehicle can be determined by weight sensors ofthe vehicle. In another variation of determining the user weight withthe vehicle, the user weight can be determined based on the differencebetween the measured resistance on the wheels or motor and the knownresistance on the wheels or motor of the unloaded vehicle (e.g.,predetermined or calibrated at a predetermined frequency). In anothervariation of determining the user weight with the vehicle, the userweight can be determined based on the difference between the measuredresultant acceleration (e.g., from vehicle sensors or mobile devicesensors) and the anticipated acceleration based on the motor input(e.g., power input). For example, if a higher acceleration ordeceleration than expected for the applied power is measured, theestimated mass can be lowered. If a lower acceleration or decelerationthan expected for the applied power is measured, then the estimated masscan be increased. In another variation of determining the user weightwith the vehicle, the user weight can be determined based on themomentum of the vehicle-user system (e.g., with external measurementmarkers or an external sensor). However, the user weight can beotherwise determined by any other suitable system component.

The method can additionally include determining whether the user hasmounted the vehicle. Determining whether the user has mounted thevehicle can function to trigger a change in the mapped vehicle response.For example, vehicle drag at rest can be removed in response to the usermounting the vehicle. Whether the user has mounted the vehicle can bedetermined by the mobile device, by the vehicle or by any other suitablesystem component.

As shown in FIG. 4, determining whether the user has mounted the vehiclewith the mobile device can include detecting user proximity to thevehicle S410 and/or detecting a confirmation of user vehicle mountingS420. Determining whether the user has mounted the vehicle canadditionally include establishing a reference point for the mobiledevice 8430, wherein the orientation change can be detected relative tothe reference point.

Detecting user proximity to the vehicle S410 functions as a triggerevent that triggers (e.g., initiates) monitoring for mountingconfirmation. Detecting user proximity to the vehicle can additionallyfunction as a trigger event to initiate reference point establishment(e.g., calibration). Detecting user proximity to the vehicle preferablyincludes detecting mobile device connection with the vehicle. Theconnection can be physical or digital. Detecting a connection with thevehicle can include detecting a physical connection of the mobile devicewith the vehicle (e.g., a wired connection with the vehicle, mobiledevice coupling with a vehicle mount, etc.). Alternatively, detecting aconnection with the vehicle can include connecting with the vehicle overa first short-range communication system (e.g., wherein the vehicle andcommunication system are powered). The first short-range communicationsystem is preferably limited in range, such that connection isindicative of user proximity to the vehicle (e.g., within the limitedrange of the vehicle).

Detecting confirmation of user vehicle mounting 8420 functions todetermine that the user has mounted the vehicle. The confirmation ispreferably detected by an active monitoring system that activelymonitors for the confirmation event. The monitoring system is preferablyactivated in response to user proximity detection, but can alternativelybe monitoring for the confirmation event at predetermined frequencies orat any other suitable predetermined frequency. Detecting confirmation ofuser vehicle mounting can include the mobile device detecting a secondconnection with the vehicle through a second short-range communicationsystem, wherein the second short-range communication system preferablyhas a shorter range than the first short range communication system. Thearrangement of the second short-range communication system in thevehicle preferably results in a range such that mobile device connectionwith the vehicle limits the user location to that over the supportsurface. However, the second short-range communication can be otherwisedetermined.

Alternatively, detecting confirmation of user vehicle mounting 8420 caninclude detecting an orientation change at the mobile device. Theorientation change is preferably relative to a reference orientationdetermined by the mobile device in response to detection of userproximity to the vehicle, but can alternatively be relative to areference orientation determined by the mobile device in any othersuitable manner.

In a first variation, the orientation change can be detected by analtitude change at the user mobile device. The altitude change can bedetected by the altimeter, location sensor (e.g., GPS) or any othersuitable sensor. The user is determined to have mounted the vehicle whenthe altitude change is substantially equivalent (e.g., within a marginof error) to the distance of the vehicle support surface from thedriving surface. For example, the user can be determined to have mountedthe vehicle when the altitude change is substantially equivalent to theradius of the wheels in addition to the distance of the broad surface ofthe support surface distal the driving surface from the wheel axis ofrotation. Additionally or alternatively, the user can be determined tohave mounted the vehicle after the altitude change is detected and afterthe changed altitude has been detected for a threshold period of timeafter the altitude change was detected, indicative of the user mountingand staying on the vehicle. The threshold period of time is preferablybased on the gait of the user (e.g., as determined when the mobiledevice was determined to be in a pocket, bag, or other storage of theuser), wherein the threshold period of time is preferably a longerperiod of time than it takes for the user to take a step. The gait ispreferably measured in response to detection of user proximity with thevehicle, but can alternatively be measured at an earlier point in timeand stored. However, the threshold period of time can be predetermined(e.g., 5 seconds) or otherwise determined. Alternatively, theorientation change can be determined in response to determination thatthe user has taken an incomplete step or a step higher than a typicalstep (e.g., by a mobile device orientation sensor). This can bedetermined relative to the recorded gait, as described above, whereinthe orientation sensor can measure or record a gait pattern, or apattern of mobile device movement when stored in user storage. Adifference between the measured gait and the recorded gait can beindicative of user mounting the vehicle. Alternatively, a patternindicative of the user mounting the vehicle can be detected (e.g., bythe orientation sensor), wherein the mobile device can be trained todetect such a pattern of orientation changes.

Alternatively. detecting confirmation of user vehicle mounting can bedetected by the acoustic sensor of the mobile device. The acousticsensor can analyze the ambient environment sounds for muffling orrustling above a predetermined threshold. which can be indicative ofmobile device storage in user storage. Muffling below a second threshold(e.g., same as the first threshold, alternatively different) can beindicative of the user holding the mobile device or other use of thedevice, wherein given sensor measurements (e.g., gait recording) can bediscounted as confirmations of user vehicle mounting. User vehiclemounting can be confirmed in response to the detected rustling ceasingor falling below a rustling threshold for a threshold period of time.

Alternatively, user vehicle mounting can be confirmed by the vehicle,more preferably by the vehicle sensors. User vehicle mounting can beconfirmed by a weight sensor of the vehicle. Alternatively, user vehiclemounting can be confirmed by detecting an amount of resistance on themotor exceeding the resistance on the motor for an unloaded vehicle.Alternatively, user vehicle mounting can be confirmed by wheel motiondue to a non-motor force (e.g., motion in excess of estimated wheelmotion due to motor force). Alternatively, user vehicle mounting can beconfirmed by receipt of a drive command. Alternatively, user vehiclemounting can be confirmed in any other suitable manner by the vehicle.One or a combination of the aforementioned variations is preferably usedto confirm user vehicle mounting. However, user vehicle mounting can beotherwise confirmed.

The method can additionally include determining a reference orientationfor the mobile device S430, which functions to form a basis for userposition parameter measurements. A first reference orientation can bedetermined prior to user vehicle mounting to determine whether the userhas mounted the vehicle, and a second reference can be determined todetermine user parameters during vehicle operation. Alternatively, anyother suitable number of reference orientations can be determined.Determining the reference orientation for the mobile device preferablyincludes measuring and storing mobile device sensor measurements at agiven time or for a given period of time S433. The reference orientationcan be as a set of measurements at one point in time, a set of averagedmeasurements over a period of time, a pattern of motion defined bymultiple sets of measurements, or be any other suitable set of mobiledevice position and/or orientation data. Measurements or parameters thatcan define the reference orientation include mobile device tilt alongthe device longitudinal axis, tilt about the device longitudinal axis,tilt of the device lateral axis, device location, device altitude (e.g.,as determined by an altimeter or GPS), or any other suitable or locationorientation parameter.

Determining the reference orientation for the mobile device S430 caninclude detecting the state of the mobile device relative to the userS431, which functions to determine whether the mobile device is in hand,has been stored away within a user storage compartment, such as a pocketor bag, or has been mounted to the vehicle. The reference orientationmeasurement is preferably measured after determination that the mobiledevice has been stored away or has been mounted to the vehicle, but canalternatively be measured in response to determination of any othersuitable trigger event. In a first variation, detecting the state of themobile device relative to the user includes detecting physical deviceconnection with the vehicle. In a second variation, detecting the stateof the mobile device relative to the user includes detecting a change inthe mobile device orientation or position. The reference orientation canbe determined in response to detection of a first orientation change,such as a change in the angular orientation of the mobile device to amobile device position wherein the longitudinal axis is within apredetermined range of a gravity vector (e.g., parallel or substantiallyparallel with the gravity vector). Alternatively, the referenceorientation can be determined in response to detection of a rate ofmobile device orientation change falling below a threshold rate ofchange (e.g., indicative of the mobile device resting in the userstorage). Alternatively, the reference orientation can be determined inresponse to the detection of ambient acoustic noise muffling ordetection of an increase in detected rustling. The quality, pattern, orany other suitable parameter of the rustling or muffling canadditionally be analyzed to determine which user storage the mobiledevice is in, wherein the type of user storage can be subsequently usedto determine the weighting of sensor measurements for user vehiclemounting detection. The ambient noise can additionally be analyzed todetermine the context and/or environment of the user, which cansubsequently be used to select the map or map parameters (e.g., type ofcurve, slope, output value limits, etc.) used to control the vehicle.Alternatively. the reference orientation can be delayed in response to(e.g., not measured as long as) determination that the mobile device ismoving in a pattern substantially similar to a predetermined (e.g.,prerecorded) pattern for the mobile device known to be held in the handof the user. Alternatively, the reference orientation can be delayed inresponse to receipt of input at the mobile device data input (e.g.,detection of touch screen use, detection of a button press. etc.) ordetection of mobile device display use. The input pattern canadditionally be analyzed to determine if the input was deliberate.indicative of user input, or random (e.g., accidental), indicative ofnon-user action on the input device.

Determining a reference orientation for the mobile device S430 canadditionally include determining an unmounted user state S432.Determining an unmounted user state functions to determine that the userhas not yet mounted the vehicle. Mobile device reference orientationmeasurement is preferably triggered in response to determination thatthe user is in an unmounted state, but can alternatively be triggered inresponse to determination of any other suitable user state. In onevariation, determining an unmounted user state includes detecting mobiledevice pattern of movement, as determined by the mobile device sensors,that is substantially similar (e.g., matching within a margin of error)to a user gait pattern. The user gait pattern is preferablypre-recorded, but can alternatively be determined in response to triggerevent detection. Multiple user gait patterns can be recorded, such as awalking gait pattern, running gait pattern, or any other suitable gaitpattern. The mobile device movement pattern e.g., orientation pattern.as determined from the accelerometer or gyroscope) can be coupled with amobile device translation parameter (e.g., velocity or acceleration) todetermine which pre-recorded gait pattern should be used for comparison.In a second variation, determining an unmounted user state can includedetermining that the second short-range communication system has notconnected to the vehicle.

In one example, determining whether the user has mounted the vehicleincludes connecting to the vehicle with a user mobile device; measuringa user gait with the mobile device in response to vehicle connection;comparing the measured gait with a historical, recorded pattern of usergait, matched based on the estimated user velocity or otherwise matched,to determine that user is not yet on vehicle; in response to detectionof rustling or substantially constant mobile device altitude,determining a reference orientation by measuring the instantaneousorientation of the mobile device, determining the average orientation ofthe mobile device, or determining a pattern of orientation change; anddetecting a change in the mobile device orientation, such as a change inaltitude or a deviation from the orientation change pattern.

The method can additionally include determining the angular orientationof the user on the vehicle, which can be subsequently used to select thereplacement map value. This is preferably determined after user vehiclemounting is detected, but can alternatively be determined during vehicleoperation (e.g., while the user is riding the vehicle), or at any othersuitable time. This is preferably determined once, but can be determinedat any other suitable frequency. The lean can be the difference betweenthe user center of gravity and the center of the user base or beotherwise determined. Examples of angular orientation of the userinclude the amount of lean forward, backward, to the right, or to theleft. The lean can be determined by the mobile device or by the vehicle.In one variation, the lean can be determined by the mobile device,wherein the lean is determined relative to the reference orientation, asmeasured by the mobile device while the user is standing, walking, orotherwise off the vehicle. The angular difference between the mobiledevice position (e.g., as determined by the gyroscope or accelerometer)after detection of user vehicle mounting and the reference position ispreferably used as the angular orientation of the user on the vehicle.Alternatively, the lean can be determined from the acoustic sensor ofthe mobile device, wherein the determined direction of rustling can beused to determine the direction of user lean. In another variation, thelean can be determined by the vehicle. The lean can be determined by aset of weight sensors on the vehicle, wherein the user lean can bedetermined from the difference in measured force between a first and asecond sensor (e.g., wherein the user is determined to lean toward thesensor measuring a higher force). Alternatively, the lean can bedetermined based on the resistance on a wheel relative to another wheel,wherein the user is determined to be leaning toward the wheelexperiencing the higher resistance. However, the angular orientation ofthe user on the vehicle can be otherwise determined.

The method can additionally include determining the linear position ofthe user on the vehicle (e.g., the user weight distribution across thesupport surface). The linear position can also be subsequently used toselect the replacement map value. In a first variation, the linearposition of the user on the vehicle can be determined by the mobiledevice. The linear position of the user can be determined by atriangulation mechanism of the mobile device, based on transmitters onthe vehicle. However, the linear position can be otherwise determined bythe mobile device. In another variation, the linear position of the usercan be determined by the vehicle. The linear position of the user can bedetermined based on a set of weight sensors of the vehicle, wherein theuser is determined to be located at the locations corresponding to theweight sensors measuring an applied force. The linear position of theuser can be determined based on the relative resistance between thefront and back wheels, from the resistance on the motor, from theresultant acceleration (e.g., difference between the measuredacceleration and the anticipated acceleration), or from any othersuitable vehicle parameter. However, the linear position can beotherwise determined by the vehicle.

The method can additionally include determining the characteristics ofthe terrain or environment of the vehicle. The vehicle preferablyoperates in different modes (e.g., operates based on different throttlemaps) in different terrain. For example, the vehicle can operate in afirst mode (e.g., based on a first throttle map, have a different outputvalue change rate limit, etc.) in an environment with car traffic, andin a second mode in an environment without car traffic. The ambientenvironment type can be determined based on the acoustic sensor of themobile device (e.g., using acoustic pattern matching), based on theorientation sensor of the mobile device or vehicle (e.g., usingvibration pattern matching), or determined in any other suitable manner.

The method can additionally include determining the pitch of thevehicle, which functions to determine whether the vehicle and/or userare on an incline or a decline. The angle of a longitudinal axisrelative to a gravity vector (e.g., the angle of the incline) ispreferably determined, but the angle of the lateral axis relative to thegravity vector or any other suitable parameter indicative of pitch canbe determined. The pitch of the vehicle can be determined with themobile device, using orientation sensors, such as the accelerometer,gyroscope, altimeter, or barometer. location sensors (e.g., GPS) coupledwith a terrain map. or determined in any other suitable manner.Alternatively the pitch of the vehicle can be determined with thevehicle. using vehicle sensors, a difference between anticipated vehiclespeed given the wheel acceleration and the measured vehicle speedexceeding a threshold difference (e.g., wherein the vehicle is on adecline if the difference is negative and on an incline if thedifference is positive), or determined in any other suitable manner.

The method can additionally include determining user emotion, which canalso be used to select the default map, the replacement map value, orthe map limits. The user emotion is preferably determined by the remoteserver and sent to the mobile device, wherein the mobile devicedetermine map parameters or generates instructions for the vehicle basedon the user emotion. Alternatively, the remote server can determine mapparameters or generate instructions, which are sent to the vehicleeither directly or through the mobile device. Alternatively, the useremotions can be determined by the mobile device. The user emotion can bedetermined in response to mobile device connection with the vehicle orin response to detection of any other suitable event indicative ofimminent vehicle operation, wherein the mobile device can send a requestto the remote server. The user emotion is preferably determined fromkeyword, sentiment, or other analysis of the content posted by the useron one or more social networking systems (e.g., through the mobiledevice or in association with a user identifier, such as a user name,associated with the mobile device). The content within a thresholdperiod of time prior to detection of the event indicative of imminentvehicle operation is preferably analyzed (e.g., content posted within anhour of the event), but any other suitable content can be analyzed.Content generated by user connections can additionally be analyzed. Inone example, in response to determination that the user is angry, thethrottle map can be adjusted to be less responsive. In another example,in response to determination that the user is tired, the throttle mapcan be selected or adjusted to be less responsive. Vehicle operation canadditionally be controlled to incorporate perturbations to keep the userawake. User perturbation tracking can additionally be activated on thevehicle and/or mobile device to detect whether the user is fallingasleep. In another example, in response to determination that the useris excited, the throttle map can be selected or adjusted to be moreresponsive.

The method can additionally include determining user context S500, whichcan also be used to select the default map, the replacement map value,or the map limits. The user context can additionally be used to controlvehicle operation. For example, the vehicle can be controlled to guidethe user along a drive route that is selected by the user orautomatically selected. The starting point is preferably determined bythe location sensor of the mobile device or vehicle, but canalternatively be determined from a post on a social networking serviceor determined in any other suitable manner. The destination can bedetermined from a calendar (e.g., on the mobile device or by the remoteserver), received at a mapping application, or otherwise determined. Thedesired time of arrival can additionally be determined from the calendaror from any other suitable source. The throttle map can be determinedfrom the terrain and/or environment that the selected or recommendedroute passes through, how late the user will be, or based on any othersuitable contextual variable. For example, a more aggressive map (e.g.,with a higher slope) can be selected in response to the estimated timeof arrival falling a threshold amount behind the appointment time (e.g.,the user estimated to be late by 15 minutes), and a more lenient map(e.g., with a lower slope) can be selected in response to the userestimated to arrive earlier than the appointment time.

The method can additionally include determining the substantiallyinstantaneous user energy state. The user energy state can be determinedusing a secondary user device, such as a smartwatch, wherein thesecondary user device can determine the energy state by matchingphysiological measurements, such as blood pressure, pulse, bodytemperature, perspiration, oxygenation, or any other suitable parameter,to predetermined patterns corresponding to given energy states orclassifications. Alternatively, the user energy state can be determinedusing the mobile device, wherein the motion sensor can detect usermovement patterns consistent with falling asleep or fatigue (e.g.,detect a slow pitch forward or swaying), or used to detect any othersuitable user pattern. Alternatively, the user energy state can bedetermined from audio analysis, such as detecting an audio patternsubstantially matching “I'm so tired” in the voice of the user.Alternatively, the user energy state can be determined from socialnetwork system analysis, such as detecting keywords indicative of aphysiological state. However, any other suitable method can be used todetermine the user physiological state. User excitement, fatigue, or anyother suitable physiological energy state can be determined, wherein thevehicle operation can be adjusted to accommodate for the energy state.For example, intentional perturbations can be incorporated periodically,randomly, or in response to determination that the user is fallingasleep to wake the user up. In another example. the perturbation can betimed such that the vehicle perturbations in the direction that the useris swaying to catch the user. In another example, a different throttlemap can be selected when the user is determined to be excited or to needexercise. However, vehicle operation can be otherwise modified toaccommodate for user energy states.

The method can additionally include selecting a second output changerate limit. The second output change rate limit is preferably selectedin response to receipt of a drive command, then receipt of a throttlevalue above a threshold value. This pattern of drive value receipt canbe indicative of a desire to rapidly accelerate, or can be indicative ofa mistake in user input. In the former case, the vehicle output ispreferably controlled to rapidly increase from the standby output value(mapped to the default throttle value) to the output value mapped to thereceived throttle value. The output value change rate preferably changesat the output change rate limit, but can alternatively change at thesecond output change rate limit, wherein the second output change ratelimit can be higher than the first output change rate limit. In thelatter case, the vehicle output can also be controlled to increase fromthe standby output value (mapped to the default throttle value) to theoutput value mapped to the received throttle value, but at a sloweroutput value change rate than the second output value change rate. Whichoperation case should be used is preferably determined based on theriding experience of the respective user, but can alternatively beotherwise determined. The second output change rate limit is preferablyselected based on user parameters, such as experience (e.g., the secondoutput change rate limit can positively correlate with experience), orcan be otherwise determined.

3. Examples of the Method

In a first example, the method mitigates perturbation due to userthrottle selection before drive initiation. As shown in FIG. 5, themethod includes determining that a vehicle position parameter (e.g.,velocity, acceleration, wheel velocity, etc.) is below or equal to athreshold value (e.g., wherein the threshold value is 0 m/s²), receivinga first throttle value from the throttle, wherein the first throttlevalue is beyond a predetermined range relative to the default throttlevalue (e.g., near the maximum throttle value), and receiving a drivecommand after receipt of the throttle value beyond the predeterminedrange; selecting a replacement output value closer to the standby outputvalue (mapped to the standby throttle value) than the default outputvalue mapped to the throttle value; operating the vehicle to meet thereplacement output value in response to receipt of the drive command(e.g., remapping the throttle value to the replacement output value);and incrementally adjusting the output value mapped to the throttlevalue back to the default output value. The replacement output value ispreferably the standby output value, but can alternatively be any othersuitable value. The output value is preferably changed at a ratesubstantially equivalent to the output value change rate limit, but canalternatively be selected based on user parameters, or otherwisedetermined.

In a second example, the method mitigates perturbation due to a highuser throttle selection within a threshold period of time (e.g.,substantially instantaneously) after drive initiation. This couldaccommodate for a rapid throttle value change (e.g., decrease orincrease). As shown in FIG. 6, the method includes detecting a vehicleposition parameter (e.g., velocity, acceleration, wheel velocity, etc.)falling below or equal to a threshold value (e.g., wherein the thresholdvalue is 0 m/²), receiving a drive command, and receiving a firstthrottle value from the throttle after receipt of the drive command,wherein the first throttle value is beyond a predetermined rangerelative to the default throttle value (e.g., near the maximum throttlevalue); selecting a replacement output value closer to the standbyoutput value (mapped to the standby throttle value) than the defaultoutput value mapped to the throttle value: operating the vehicle to meetthe replacement output value in response to receipt of the drive command(e.g., remapping the throttle value to the replacement output value);and incrementally adjusting the output value mapped to the throttlevalue back to the default output value, such that the output increasesover time. The method can alternatively include detecting a throttleposition change or a throttle value change beyond a threshold rate ofchange instead of receiving a first throttle value from the throttleafter receipt of the drive command. The threshold rate of change ispreferably predetermined, but can alternatively be selected based onuser parameters or otherwise selected. The replacement output value ispreferably the standby output value, but can alternatively be the outputvalue mapped to the last throttle value prior to throttle change or anyother suitable value. The output value is preferably changed at a ratesubstantially equivalent to the output value change rate limit, but canalternatively be selected based on user parameters, or otherwisedetermined. The output change rate limit for the second example ispreferably higher than that for the first example (preceding example),but can alternatively be the same or lower.

In a third example, the method mitigates perturbation due to suddenwheel or vehicle halt, such as due to sudden braking, hitting anobstacle, or any other suitable halting event. As shown in FIG. 7, themethod can include detecting a near-instantaneous or rapid rate ofchange (e.g., beyond a threshold difference within a threshold period oftime) in the wheel angular velocity, wheel angular acceleration, vehiclevelocity, vehicle acceleration, user velocity, user acceleration, or inany other suitable parameter. For example, the perturbation conditioncan be detected when the vehicle or wheel velocity decreases at a ratefaster than a predetermined deceleration threshold (e.g., 5 m/s²). Inanother example, the perturbation condition can be detected when thevehicle or wheel acceleration decreases at a rate faster than apredetermined perturbation threshold (e.g., 1 m/s³). In another example,the perturbation condition can be detected when the user accelerationincreases at a rate above a predetermined perturbation threshold, orwhen the user velocity increases at a rate above a predeterminedacceleration threshold. In a specific example, the perturbationcondition is only detected when a rapid change in user position isdetected after a rapid change in vehicle or wheel velocity oracceleration. In this specific example. user position change detectedbefore vehicle or wheel velocity or acceleration change can beindicative of a user-desired stop. In another example, the perturbationcondition is detected when a difference between the user accelerationand the vehicle acceleration exceeds a threshold difference. However,the perturbation condition can be otherwise determined. The replacementoutput value is preferably selected to substantially regain the prioruser, vehicle, or wheel velocity or acceleration, or to minimize thedifference between the user acceleration and the vehicle acceleration.For example, the vehicle can be operated to drive the stopped wheels inthe direction of previous travel. In another example, the direction ofuser acceleration or velocity can be determined, wherein the vehicle isdriven in the determined direction of the user. The selected replacementmap value is preferably high enough overcome the halting force (e.g.,estimated or incrementally determined), but can be otherwise selected.

In a fourth example, the method accommodates for a higher powerrequirement when driving up inclines. As shown in FIG. 9, in response toreceipt of the maximum throttle value beyond threshold period of time(e.g., the maximum throttle position being retained or held for thethreshold period of time), the throttle map can be deformed such thatthe value mapped to the maximum throttle value is increased. The outputvalue can be substantially instantaneously increased to the increasedreplacement map value, but is preferably incrementally adjusted to theincreased replacement map value at the output value change rate limit orat any other suitable output value change rate. The replacement mapvalue is used as the value mapped to the maximum throttle value as longas the maximum throttle value is substantially constantly received. Theoutput value mapped to the maximum throttle value is preferablyreassigned back to the default output value in response to receipt of athrottle value outside of a predetermined range from the maximumthrottle value (e.g., the map preferably deforms back to thepre-existing values in response to throttle retraction from maximumthrottle position). However, a request or need for increased power canbe otherwise accommodated.

In a fifth example, the method accommodates for a loss of a drivecommand. In conventional electric vehicles, a loss of the drive commandwould result in the throttle value falling to the default throttlevalue, resulting in either automated braking or cessation of powerprovision to the motor. This can result in perturbation if the vehicleis accelerating or travelling at high speeds, which could result in userpitching because the user is positioned to accommodate for theacceleration or speed and is not positioned to accommodate for a suddenreduction in acceleration or speed. As shown in FIG. 10, this methodincludes detecting a lost drive command, lost connection to the drivecontroller, or detecting a throttle position change beyond thresholdchange rate (e.g., the throttle value decreases faster than thethreshold throttle value change rate) as the perturbation condition,detecting vehicle or wheel acceleration above a threshold acceleration(e.g., above 0 m/s²), and remapping the default throttle value to areplacement output value in response to detection of the perturbationcondition and the acceleration exceeding the threshold acceleration. Thereplacement output value is preferably higher than the default outputvalue assigned to the default throttle value. More preferably, thereplacement output value is the output value just prior to driveconnection loss or throttle value change, wherein the vehicle or mobiledevice preferably caches the target or actual vehicle output values fora predetermined period of time (e.g., keeps the values for 5 minutesafter use). The replacement output value is preferably selected tomaintain the vehicle acceleration, then incrementally adjusted to reducethe vehicle acceleration and/or vehicle velocity. The replacement outputvalue can additionally be selected based on whether the vehicle is on anincline or a decline. In one specific example, the replacement outputvalue can be incrementally adjusted to gradually decrease the vehiclevelocity to zero (e.g., when the vehicle is detected to be on a slope).In another specific example, the replacement output value can beincrementally adjusted to gradually decrease the vehicle velocity to asubstantially constant coasting speed.

In a sixth example, the method adjusts vehicle operation to accommodatefor an applied external force. As shown in FIG. 11, the method caninclude detecting an externally applied force (e.g., from userpropulsion) S210. detecting a resultant vehicle velocity S220, andcontrolling vehicle operation to substantially maintain (e.g., within amargin of error) the detected vehicle velocity S310. The externallyapplied force can be detected at the vehicle or at the mobile device.The vehicle can detect the externally applied force when the wheelacceleration is different from that expected based on the instantaneouspower to the wheels. accounting for resistance provided by the load onthe vehicle. In one variation, the wheel or vehicle acceleration orvelocity is measured for a given output value (e.g., motor output orinput), and the externally applied force is detected when the wheel orvehicle acceleration or velocity deviates from the previously measuredacceleration or velocity (e.g., in the same drive) by a predeterminedthreshold. An increased wheel acceleration is preferably indicative offorward propulsion, whereas decreased wheel acceleration is preferablyindicative of braking. The externally applied force can additionally oralternatively be detected at the mobile device. The mobile device candetect a mobile device movement pattern consistent with forwardpropulsion by the user (e.g., a cyclic motion in a plane substantiallyparallel to the gravity vector). The mobile device can additionallydetect mobile device movement pattern consistent with deceleration bythe user. For example, the mobile device can detect a lateral shift inmobile device position, an altitude change, a substantially constantaltitude change, or any other suitable movement pattern consistent withvehicle deceleration by the user.

In response to external force application by the mobile device, themobile device preferably sends an acceleration or deceleration signal tothe vehicle, wherein the vehicle preferably determines an increasedreplacement output value for the throttle value based on the signal. Thesignal can include an acceleration or deceleration amount based on theestimated magnitude of the external force (e.g., as determined fromvelocity, frequency, etc.). Alternatively, the wheel acceleration ordeceleration rate can be predetermined or otherwise determined.Alternatively, a predetermined or otherwise selected vehicleacceleration or deceleration can be maintained as long as the pattern isdetected.

The vehicle can assist with the propulsion or deceleration in responseto external force detection (e.g., increases or decreases the outputvalue for the throttle value, respectively), can continue to maintainthe same output value for the throttle value, can maintain the resultantvelocity (e.g., highest or average), or can otherwise be operated inresponse to application of the external force. The vehicle preferablymaintains the resultant vehicle velocity in response to cessation ofpattern detection. The vehicle velocity can be maintained by the vehicle(e.g., wherein the throttle map can be adjusted) or by the mobile device(e.g., wherein the device sends an acceleration signal each time themobile device velocity falls below a predetermined range of theresultant velocity). Vehicle or wheel velocity is preferably detected bythe wheel encoder, but can alternatively be detected by the vehicle ormobile device position sensor (e.g., accelerometer) or determined in anyother suitable manner.

In a seventh example, the method adjusts vehicle operation toaccommodate for lost traction. The method preferably includes measuringthe wheel acceleration. measuring the vehicle acceleration or mobiledevice acceleration (e.g., along the direction of travel), anddetermining if the wheel acceleration exceeds the estimated wheelacceleration for the measured vehicle or mobile device acceleration.Slip or loss of traction is determined by the vehicle or mobile devicewhen the wheel acceleration exceeds a predetermined range of theestimated wheel acceleration. Power to the slipped wheel is preferablycontrolled to reduce the wheel acceleration to the estimated wheelacceleration or the acceleration of a second wheel of the vehicle.

The method can additionally include differential control based onvehicle speed, wherein the output values can be adjusted based onmeasured vehicle velocity. For example. at high speeds, a slight lean oradjustment in load weight can result in a large turn response. while thesame lean at low speeds can result in a small turn response.

The method can additionally accommodate for user weight. The user weightcan be determined using the methods described above, and the throttlevalues remapped to replacement output values or a new map selected basedon the weight. For example, a map having a first slope can be selectedfor a user with a first weight (e.g., below a threshold weight), and amap having a second slope steeper than the first slope can be selectedfor a user having a second weight higher than the first weight.

The method can additionally accommodate for user experience. As shown inFIG. 8, the user experience can be determined from stored userpreferences (e.g., retrieved based on a user identifier associated withthe mobile device, stored by the device, or stored by the vehicle), fromhistorical riding patterns, or otherwise determined. The difficulty orresponsiveness of the map or replacement output values preferablypositively corresponds with the experience level (e.g., as measured witha scalar), but can alternatively be otherwise determined based on theexperience level. For example. a default map with a steeper curve can beselected for a more experienced user. In another example, the amount ofbrake application at rest is decreased with increased user experience.Select vehicle operations can additionally be permitted based on theexperience level. For example. smooth transitioning between forward andbackward translation (e.g., movement in a first and second opposingdirection along the vehicle longitudinal axis) during vehicle drive canbe permitted for a user with high experience, while backward translationcan be prevented or require additional input (e.g., require a receipt oftwo drive commands in quick succession) for a user with low experience.

The method can additionally accommodate for user history, wherein themaps can be adjusted based on the historical throttle patterns or ridingpatterns of a given user. The user history can be determined in asimilar manner to how user experience was determined, as describedabove, but can alternatively be otherwise determined. Each ride historyis preferably recorded by the vehicle and stored in the vehicle, mobiledevice, or remote server. Alternatively, the throttle, drive controller,or any other suitable component can measure and/or store the ridehistory. The ride history can include throttle values, output values,vehicle position parameters, mobile device position parameters, or anyother suitable parameter. In one variation, if analysis of the userhistory shows that the user stays within a threshold throttle value fora threshold proportion of the riding time, the map can be adjusted suchthat the output value mapped to the threshold value is remapped to themaximum throttle value. Alternatively, the slope of the map curve can bedecreased (e.g., flattened). In another variation, if a predeterminedpattern (e.g., an increase in throttle value followed by a rapiddecrease) is detected in the user history, the maximum output value canbe lowered or the map curve flattened. In another variation, if analysisof the user history shows that the user stays above a threshold throttlevalue for a threshold proportion of the riding time, the map can beadjusted such that the maximum output value is increased or the slope ofthe map curve increased. However, the map and replacement output valuescan be otherwise selected or adjusted based on the user history.

The method can additionally include facilitating user navigation from afirst location to a second location. Navigation is preferablyfacilitated by providing less maneuvering resistance for vehicle travelalong a predetermined route, and providing more resistance for vehicletravel outside the predetermined route. Alternatively, vehicle travelalong the predetermined route can be assisted. For example, when thedirections indicate a right turn, more power can be supplied to the leftwheels and less power supplied to the right wheels. The navigationinstructions (e.g., how to selectively power the wheels) are preferablygenerated by the mobile device and sent to the mobile device in realtime or a predetermined period of time before anticipated use. However,the instructions can be determined by the remote server, the vehicle, ordetermined in any other suitable manner by any other suitable component.In one variation, the mobile device determines the route directions andsends the route directions to the vehicle, wherein the vehicledetermines throttle mapping adjustments (replacement output values)based on the route directions. The route is preferably selected by theuser, but can alternatively be automatically determined by the system(e.g., from the instantaneous location of the user or mobile device anda received or determined target destination) or otherwise selected. Thesystem can automatically select a new route in response to determinationthat user veered from predetermined course, as determine by the mobiledevice location sensor or orientation sensor, or by the relativeresistance on the wheels or motors. However, navigation can be otherwisefacilitated by the system.

The method can additionally include determining the context of thedrive, and select maps, replacement output values, output value changerate limits, or any other suitable parameter based on the drive context.For example, the system might select a map with a lower maximum outputvalue when a commuting context is determined (e.g., between the hours of8 am and 10 am on a weekday) relative to a map selected when a sportcontext is determined (e.g., when the mobile device location correspondsto a skate park or race track venue). In another example, the systemmight select or adjust a map to accommodate for lower powerconsumptionin response to determination of the SOC (state of charge) of an energystorage unit falling below a threshold value. The context canautomatically determined by the remote server, mobile device, or vehiclebased on the time of the ride, the location of the vehicle or mobiledevice, the user calendar, historical riding patterns, or any othersuitable user parameter.

The method can additionally accommodate for regulatory differencesacross geographic regions. The method can include determining thegeographic region with the location sensor of the mobile device orvehicle, retrieving the regulatory vehicle operation limitations (e.g.,power limitations, torque limitations, etc.) for the respectivegeographic region from a stored database or a remote database. andadjusting the maps to account for the limitations, such as by limitingthe maximum output value mapped to the maximum input value. However, thesystem can otherwise accommodate for differences in regulations acrossgeographic regions. However. the system and method can include anysuitable combination of the aforementioned examples and variants.

As shown in FIG. 12, the method of vehicle response control includesdetermining a mode selection S500, determining vehicle parametersettings associated with the selected mode S600, and controlling theoperation parameters of the motor based on the determined vehicleparameter settings S700. This method functions to control theperformance of an electric vehicle. More preferably, this methodaccommodates for the driving expertise of the rider, and tailors thevehicle driving experience to meet rider expectations.

The method is preferably performed by vehicle system including a vehicleand a remote. The vehicle is preferably an electric vehicle that isdriven by one or more drive trains, wherein each drive train preferablydrives one or more wheels. The drivetrain preferably includes anelectric motor, and can additionally include a transmission connected tothe motor or any other suitable drive train element. The electric motoris preferably a permanent magnet motor, but can alternatively be a DCmotor, AC motor, or any other suitable motor. The vehicle preferablyadditionally includes one or more wheels driven by the electric motor.The vehicle preferably additionally includes a motor controller thatcontrols electric motor operation, and can additionally include sensorsthat measure motor operation parameters (e.g., current sensors,encoders, etc.) and/or sensors that measure vehicle operation parameters(e.g., accelerometer, gyroscope, remote sensing mechanism, etc.). Thevehicle can additionally include a processor that functions to receivemeasurements from the sensor, determine motor operation parameteradjustments or target motor operation parameters based on themeasurements, and send control instructions to the motor controllers tooperate the motors at the target operation parameters. Alternatively, aportion or all of the processing and control instruction generation canbe performed by the remote and/or received from an external source(e.g., a networked server). The vehicle can additionally store a uniqueidentifier for a user. The vehicle can additionally access a server andretrieve information (e.g., motor operation permissions and/or settings)associated with the unique identifier in response to a retrieval event(e.g., the initiation of a new driving session, etc.). The vehicle canadditionally store motor operation permissions and/or settings. Thevehicle can additionally store historical vehicle use patterns for theuser. The vehicle preferably additionally includes a data link to theremote. The data link can be a wired connection extending from thevehicle to the remote, or can be a wireless connection, wherein thevehicle and remote each include a complimentary transmitter and receiverpair. The vehicle preferably additionally includes an energy storagedevice, such as a rechargeable battery. The vehicle is preferablysubstantially lightweight, and is preferably capable of moving inresponse to a propulsion force generated by a user when the user is inthe riding position. Alternatively, the vehicle can remain substantiallystatic in response to a user-generated propulsion force, wherein thevehicle can require an actively driven drive train to move.

The vehicle can be a motorized skateboard substantially similar to thevehicle described in U.S. application Ser. No. 13/645,388 filed Oct. 4,2012, but can alternatively be a motorized kick scooter, a motorizedbicycle, a motorized pair of skates, or any other suitable lightweighttransportation device.

The remote of the vehicle system functions to receive a user input andto transmit a signal associated with the user input to the vehicle. Theremote can additionally process the user input into control instructionsthat are sent to the vehicle. The remote can additionally store a uniqueidentifier for a user. The remote can additionally access a server andretrieve information (e.g., motor operation permissions and/or settings)associated with the unique identifier in response to a retrieval event(e.g., the initiation of a new driving session, etc.). The remote canadditionally store motor operation permissions and/or settings. Theremote can additionally store historical vehicle use patterns for theuser. The remote can additionally measure a vehicle operation parameter(e.g., velocity), and generate control instructions, based on themeasurements, that are sent to the vehicle. The remote preferablyincludes a processor, and can additionally include sensors (e.g., anaccelerometer), memory (e.g., flash memory, RAM, etc.), and a user input(e.g., a trigger, oiler, slider. touchscreen, etc.). The sensormeasurements can alternatively be received by the remote from a user(e.g., input by the user). The remote is preferably capable of sending afirst signal to the vehicle and can additionally send a second signal tothe vehicle. The first signal is preferably indicative of maximumacceleration in a first direction, and the second signal is preferablyindicative of maximum acceleration in a second direction opposing thefirst (e.g., deceleration or reverse driving). Alternatively, the firstand second signals can be indicative of desired velocities. The remotecan additionally indicate a cruise state in which no acceleration isdesired (e.g., no signal is sent). The remote can additionally becapable of sending a plurality of signals that range from the cruisesignal to the first signal and/or second signal. wherein each of theplurality of signals are preferably indicative of an acceleration valuebetween cruise state and maximum acceleration. The remote canadditionally include a display (e.g., a digital display, e-ink display,etc.) on which available mode options, driving suggestions,notifications, and/or vehicle operation parameters can be displayed. Theremote is preferably configured to be hand-held, but can alternativelybe configured to be coupled to the board surface, configured to be wornon a user's head, wrist, arm, or have any other suitable form factor.The remote can be a remote specific to the vehicle, a mobile device(e.g., a smartphone), or be any other suitable device that can functionas a remote.

Determining a mode selection S500 functions to receive an indicator of auser's expectation of the driving experience. The mode can be manuallyselected by the user, wherein the mode is preferably received at a userinput on the remote. In this variation, at least a first and a secondmode option are presented to the user on the display of the remote,wherein the remote preferably receives a user mode selection.Alternatively, the mode can be automatically selected based on a storedhistory of vehicle use (e.g., driving history) specifically associatedwith the user. The user history is preferably stored on the remote, butcan alternatively be stored on the vehicle or on a server, wherein theuser history is preferably associated with a unique user identifier(user ID). The remote preferably determines the appropriate mode basedon the user mode selection, but the vehicle or server can alternativelydetermine the appropriate mode based on the user history. When the userhistory is stored on the server, the remote and/or vehicle preferablyaccesses the user history stored on the server each time a modeselection is to be determined, but can alternatively sync with theserver at predetermined frequencies. Alternatively, the mode can beautomatically selected based on substantially instantaneous vehicleoperation measurements, wherein the vehicle operation measurements arepreferably mapped to an estimated user expertise and the mode ispreferably selected to substantially match the estimated expertise ofthe user. For example, if weight is detected on the vehicle, the wheelsare detected to subsequently turn, and weight is detected to be removedfrom the vehicle within a threshold period of time (e.g., the user hasslipped off), then a mode that brakes the wheels during mounting can beselected. The mode in which the vehicle is operated is preferablydetermined based on the estimated expertise of the user, wherein theuser must have met a mode advancement requirement to progress tosuccessive modes. The mode advancement requirement can be a thresholdnumber of driving hours (e.g., number of hours the user has driven thevehicle), an action performed by the user (e.g., a trick or driving thevehicle at a given speed for a given period of time, etc.), or any othersuitable requirement indicative of increased user expertise with thevehicle. The mode advancement requirement can be displayed or presentedin another manner to the user prior to achievement of the modeadvancement requirement. The automatically selected mode can be one of aset of substantially discrete modes (e.g., beginner, intermediate, andadvanced modes), or can be one selected from a continuum of modes,wherein the continuum of modes is preferably achieved by graduallyadjusting each of a plurality of vehicle operation parameters fromsettings associated with inexperienced users to settings associated withexperienced users.

Determining the vehicle parameter settings associated with the modeselection S600 functions to map received input signals to theappropriate interpretations of the vehicle parameters, depending on themode. The vehicle operation parameter setting is preferably a limit(e.g., threshold), such as a limit on the vehicle velocity, vehicleacceleration, motor rotational velocity, motor rotational acceleration,or any other suitable performance parameter. Alternatively, the vehicleoperation parameter setting can be a constant parameter value, such as aconstant rate of acceleration change. Alternatively, the vehicleoperation parameter setting can be an operation parameter threshold atwhich a vehicle operation feature is applied, such as when and how muchtorque control should be applied to a slipping wheel, how much uphilldrive assist should be provided, how much downhill braking should beapplied, whether cruise control can be used. Determining the vehicleparameter settings associated with the mode selection preferablyincludes retrieving stored parameter settings associated with theselected mode, wherein the settings can be retrieved from the remote,vehicle. or a server. Alternatively, determining the vehicle parametersettings can include calculating the vehicle parameter settings,empirically determining the vehicle operation settings (e.g.,empirically determining the acceleration rate for a user thataccommodates for the user's weight. given a desired velocity), or bedetermined in any other suitable manner. Determining the vehicleparameter settings associated with the mode selection preferablyincludes mapping a set of input signals to different signalinterpretations.

In one example, the selected mode is different from the substantiallyinstantaneous mode, wherein the instantaneous mode preferably has afirst acceleration maximum and the selected mode has a secondacceleration maximum. The motor response to the maximum accelerationsignal is preferably reassigned to the second acceleration maximum,wherein the acceleration signals between the maximum acceleration signaland signal for no acceleration are reassigned to acceleration valuesbetween the second acceleration maximum and zero acceleration. Thedifferent acceleration values assigned to each successive accelerationsignal are preferably evenly distributed, but can alternatively belogarithmically distributed or have any other suitable distribution. Inanother example, the signal indicative of a maximum acceleration in afirst direction can be mapped to a first acceleration in a beginner modeand mapped to a second acceleration in an expert mode, wherein the firstacceleration is slower than the second acceleration. In another example,when a signal indicative of a maximum acceleration is received, thevehicle accelerates to and is held at a maximum velocity when thebeginner mode is selected, despite subsequent received maximumacceleration signals, while the vehicle preferably keeps accelerating atthe allowed acceleration when the expert mode is selected in response tosubsequent received maximum acceleration signals, In another example,the signal indicative of acceleration in a second direction opposing thefirst direction can be mapped to a first acceleration change rate (jerk)in the beginner mode and mapped to a second acceleration change rate inthe expert mode, wherein the first acceleration change rate is slowerthan the second acceleration change rate.

Controlling the motor operation parameters based on the vehicleparameter settings S700 functions to operate the vehicle in a mannerthat satisfies the vehicle parameter settings. Controlling the motoroperation parameters preferably includes generating motor controlinstructions from the vehicle parameter settings (based on the selectedmode) and controlling the motor based on the motor control instructions.The motor control instructions are preferably generated based on areceived user input and the determined vehicle parameter settings. Themotor control instructions can additionally be generated based on sensormeasurements from the vehicle and/or remote (e.g., vehicle parametermeasurements). The motor control instructions are preferably generatedby the vehicle as shown in FIGS. 13 and 14, but can alternatively begenerated by the remote and sent to the vehicle, wherein substantiallyinstantaneous motor operation parameter measurements are sent to theremote for use in instruction generation at a predetermined frequency,as motor operation parameter changes occur, or in response to any othersuitable event. Motor operation is preferably controlled by the vehicle,more preferably by the motor controllers. However, the remote or anyother suitable component can control motor operation.

In one example, the vehicle operation parameter setting includes avehicle velocity limitation and a maximum acceleration rate. In responseto the receipt of a maximum acceleration signal, the motor is preferablycontrolled to rotate at the maximum angular acceleration permitted bythe maximum acceleration rate until the velocity limit is reached (e.g.,as determined from an accelerometer). The motor acceleration ispreferably then controlled to substantially maintain the vehiclevelocity at the velocity limit as long as the signal indicative ofmaximum acceleration is received.

In another example, the vehicle operation parameter setting permitsdownhill braking and a maximum downhill velocity. In response to thereceipt of a maximum acceleration signal. the motor is preferablycontrolled to limit the vehicle velocity to the maximum downhillvelocity by applying motor braking to the wheels. Motor braking ispreferably applied by ceasing or reducing current provision to themotor, or by driving the motor in reverse.

In another example, the vehicle operation parameter includes uphillassistance and a maximum vehicle velocity setting or a target velocityset by cruise control (e.g., the instantaneous vehicle velocity when acruise control signal is received, wherein the vehicle velocity can beachieved by motor-assisted propulsion or by propulsion from auser-generated force). In response to the receipt of a maximumacceleration signal or a cruise control signal, the motor is preferablycontrolled to accelerate to and maintain the maximum or target velocity(e.g., as determined from an accelerometer). Any acceleration limits arepreferably ignored during uphill assistance, when the angle of thevehicle support platform is determined to be at an angle to theperpendicular of a gravity vector.

In another example, the vehicle operation parameter setting includesbraking without reverse drive capabilities. In response to the receiptof a maximum acceleration signal in a second direction opposing thefirst direction (e.g., a reverse direction), the current provided to themotor is preferably gradually decreased to zero. relying on theelectromagnetic drag of the rotor on the stator coils to slow thevehicle. When the vehicle velocity reaches zero (e.g., as determined byan accelerometer), subsequent receipt of a maximum acceleration signalin the second direction preferably does not result in vehicle movement.

In an alternative of this example, the vehicle operation parametersetting includes reverse drive capabilities. In response to the receiptof a maximum acceleration signal in a second direction opposing thefirst direction (e.g., a reverse direction), the current provided to themotor is preferably gradually decreased to zero, relying on theelectromagnetic drag of the rotor on the stator coils to slow thevehicle. In response to subsequent receipt of the maximum accelerationsignal in the second direction, the motor is preferably driven inreverse (e.g., a current with reversed polarity is applied to themotor). The amount of current applied is preferably limited by a maximumreverse vehicle acceleration value.

In another example, the vehicle operation parameter includes torquecontrol and a threshold difference in wheel rotation rate (e.g., betweena first and second wheel). Torque control (e.g., reducing the wheelrotation of a faster spinning wheel to substantially match the rotationof the slower wheel) is preferably applied only when the detecteddifference in wheel rotation rate meets or exceeds the thresholddifference.

The method can additionally include determining the modes available to auser S800, which functions to restrict the vehicle performance featuresavailable to the user. The modes available to the user can be modespermitted based on the user's driving experience, modes purchased by theuser, modes unlocked by the user (e.g., by reaching a performancethreshold), or any other suitable mode. The available modes can beautomatically determined, stored and retrieved from the remote, orstored and retrieved from a server (as shown in FIG. 15). The modesavailable to the user are preferably additionally presented to the userat a display. wherein a user mode selection is preferably received.Alternatively, the mode can be automatically selected.

Automatically determining the available modes preferably includesaccessing the historical driving parameters of the user and determiningthe vehicle parameter settings based on the combination of historicaldriving parameters. The vehicle or remote preferably determines theavailable modes. Alternatively, the server can determine the availablemodes. The historical driving parameters are preferably stored on theremote. and can be accessed whenever the available mode needs to bedetermined. Alternatively, the historical driving parameters can bestored on a server, wherein the vehicle or remote retrieves thehistorical driving parameters associated with a unique user identifier.Alternatively, the vehicle or remote can send the unique user identifierto the server, wherein the server determines and sends the availablemodes and/or vehicle parameter settings back to the vehicle or remote.The allowed modes, and subsequently, vehicle parameter settings, arepreferably determined based on the combination of historical drivingparameters associated with the user. Historical driving parameters caninclude the total driving time, the maximum vehicle operation parametersachieved while driving, the environmental conditions during past drivingsessions, or any other suitable parameter. In one variation of themethod, a new mode having higher performance vehicle parameter settingsis selected with each new driving session. such that the user isgradually introduced to the capabilities of the vehicle. For example,static braking (braking the vehicle prior to complete user mounting) canbe gradually relaxed with each subsequent driving session. All vehicleparameter settings can be changed with each new driving session, or thevehicle parameter settings can be independently adjusted with each newdriving session. In another variation of the method, a new mode havinghigher performance vehicle parameter settings is available for userselection after a historical driving parameter value reaches a thresholdvalue. For example, after driving the vehicle 20 miles, an intermediatemode including intermediate vehicle parameter settings can be availableto the user.

Retrieving the modes available to a user from a server preferablyincludes sending a user identifier to the user (e.g., from the remote orthe vehicle), wherein the server preferably retrieves and sends themodes associated with the user identifier back to the remote or vehicle.The server can send a mode identifier for the associated modes, whereinthe vehicle or remote determines (e.g., retrieves from on-board memory)the vehicle parameter settings associated with each mode. Alternatively,the server can send the vehicle parameter settings for each mode to theremote or vehicle. Each mode is preferably associated with a discreteset of vehicle parameter settings, but can alternatively be associatedwith vehicle parameter settings that are adjusted based on the userdriving history. In one example of the modes available to the user, aneconomy mode and a sport mode can be associated with the user identifierand accessible to the user. The vehicle parameter settings in theeconomy mode are preferably selected to minimize power consumption, andthe vehicle parameter settings in the sport mode are preferably selectedto maximize vehicle performance (e.g., unlimited maximum speed,acceleration limited only by motor capabilities, etc.). In anotherexample, a workout mode and a commuter mode can be available to theuser. The vehicle parameter settings in the workout mode are preferablyset to minimize motor-assisted driving and/or resisting a driving forceapplied by the user (e.g., when the user pushes the vehicle forward).The vehicle parameter settings for the commuter mode are preferably setto minimize user-generated force input. However, any other suitablemodes with any other suitable vehicle parameter settings can beavailable to the user.

As a person skilled in the art will recognize from the previous detaileddescription and from the figures and claims, modifications and changescan be made to the preferred embodiments of the invention withoutdeparting from the scope of this invention defined in the followingclaims.

We claim:
 1. A method for dynamically controlling an electric vehicle,the method comprising: determining a user parameter based on userinteraction with an input device; selecting a first digital map from aset of digital maps based on the user parameter, wherein each digitalmap of the set of digital maps correlates user inputs to powerparameters; receiving a first user input from the input device; mappingthe first user input to a first power parameter based on the firstdigital map; maintaining electric power provision to an electric motorof the electric vehicle within a predetermined range of the first powerparameter; detecting a condition indicative of perturbation; selecting asecond digital map of the set of digital maps based on the condition;determining a second power parameter based on the second digital map;and maintaining electric power provision to the electric motor within apredetermined range of the second power parameter..
 2. The method ofclaim 1, further comprising receiving sensor data sampled by a sensorassociated with the electric vehicle, wherein detecting the conditionindicative of perturbation comprises detecting the condition based onthe sensor data.
 3. The method of claim 2, wherein detecting thecondition indicative of perturbation is based on electric vehicle sensordata sampled by a vehicle sensor of the electric vehicle and mobiledevice sensor data sampled by a device sensor of a mobile device.
 4. Themethod of claim 1, wherein selecting the second digital map comprisesselecting the second digital map based on the perturbation and the userparameter, wherein the user parameter comprises user riding experience.5. The method of claim 1, wherein determining the second power parametercomprises determining the second power parameter based on the firstdigital map and the second digital map.
 6. The method of claim 5,wherein the first digital map is a throttle map mapping throttle userinputs, and wherein the second digital map is a speed map defining amaximum speed.
 7. The method of claim 1, wherein the set of digital mapsis stored at a processor of the electric vehicle, and wherein detectingthe condition indicative of perturbation and selecting the seconddigital map are performed at the processor during electric vehiclemovement.
 8. The method of claim 7, wherein detecting the conditionindicative of perturbation comprises detecting an acceleration rate ofchange above an acceleration rate of change threshold.
 9. The method ofclaim 7, further comprising: receiving an updated set of digital mapsthe electric vehicle; selecting a third digital map of the updated setof digital maps based on the user parameter. the third digital mapdistinct from the first digital map; and maintaining electric powerprovision to the electric motor within a predetermined range of a thirdpower parameter determined based on the third digital map.
 10. A methodfor dynamically controlling an electric vehicle, the method comprising:receiving a first set of user inputs collected from an input deviceduring a first time period; receiving a first sensor dataset sampled bya sensor associated with the electric vehicle during the first timeperiod; determining a user parameter based on the first set of userinputs and the first sensor dataset; selecting a first digital map of aset of digital maps based on the user parameter, wherein each digitalmap of the set of digital maps correlates user inputs to powerparameters: during a second time period: receiving a first user inputfrom the input device; mapping the first user input to a first powerparameter with the first digital map; and maintaining electric powerprovision to an electric motor of the electric vehicle within apredetermined range of the first power parameter.
 11. The method ofclaim 10, further comprising, during a third time period: detecting acondition indicative of perturbation; selecting a second digital map ofthe set of digital maps based on the condition; mapping a second userinput to a second power parameter based on the second digital map; andmaintaining electric power provision to an electric motor of theelectric vehicle within a predetermined range of the second powerparameter.
 12. The method of claim 10, wherein the first set of userinputs and the first sensor dataset are received at a remote system,wherein the user parameter is determined at the remote system, andwherein the method further comprising prior to the second time period,transmitting the selection of the first digital map to a wirelesscommunications module of the electric vehicle, the wirelesscommunications module communicably coupled to the processor.
 13. Themethod of claim 12, wherein the first sensor dataset comprises: motiondata sampled by a motion sensor mounted to the electric vehicle andelectrically connected to the processor; and location data sampled by alocation sensor of the mobile device.
 14. The method of claim 10,wherein determining the user parameter further comprises: generating ariding pattern for the user based on the first set of user inputs andthe first sensor dataset; and determining the user parameter based onthe riding pattern and a historical riding pattern associated with theuser.
 15. The method of claim 14, further comprising: storing, at aremote system, the user parameter in association with a user identifieridentifying the user; and storing, at the remote system, a user-selecteduser parameter in association with the user identifier, theuser-selected user parameter received from the user; wherein determiningthe selection of the first digital map comprises determining theselection based on the user parameter and the user-selected userparameter.
 16. The method of claim 10, further comprising: receiving asecond set of user inputs collected from the input device during thesecond time period, the second set of user inputs comprising the firstuser input; receiving a second sensor dataset sampled by the ensorduring the econd time period; updating the user parameter based on thesecond set of user inputs and the second sensor dataset; selecting asecond digital map of a second set of digital maps distinct from thefirst set of digital maps, based on the updated user parameter; andmaintaining electric power provision to an electric motor of theelectric vehicle within a predetermined range of a second powerparameter determined based on the second digital map.
 17. A method fordynamically controlling an electric vehicle, the method comprising:determining a user parameter based on user interaction with an inputdevice; achieving a first speed at the electric vehicle in response toapplication of a first manual driving force from the user; determiningthe first speed based on a first sensor dataset sampled by a sensorassociated with the electric vehicle during a first time period;maintaining electric power provision during a second time period todrive the electric vehicle within a predetermined range of a firstoutput speed selected based on the first speed and the user parameter;achieving a second speed at the electric vehicle in response toapplication of a first manual driving force from the user; determiningthe second speed based on a second sensor dataset sampled by the sensorduring the second time period; and maintaining electric power provisionduring a third time period to drive the electric vehicle within apredetermined range of a second output speed selected based on thesecond speed and the user parameter.
 18. The method of claim 17, whereinmaintaining electric power provision during the second time period is inresponse to receiving a first user input from the input device theelectric vehicle, and wherein maintaining electric power provisionduring the third time period is in response to receiving a second userinput from the input device.
 19. The method of claim 17, furthercomprising: selecting a digital map based on the user parameter prior tothe first time period, the digital map correlating speed to powerparameters; and mapping the first speed to a first power parameter basedon the digital map, wherein maintaining electric power provision duringthe second time period comprises maintaining electric power provisionwithin a predetermined range of the first power parameter to drive theelectric vehicle.
 20. The method of claim 17, further comprising:detecting a condition indicative of perturbation during the third timeperiod based on a third sensor dataset sampled by the sensor during thethird time period; determining a second power parameter based on thecondition; and maintaining electric power provision within apredetermined range of the second power parameter.